숫자 관련
round(2.5)
ceil(2.1)
floor(2.9)
abs(-1)
var value = 3.0
value = pow(value, 2)
value = sqrt(value)
[3, 6, 5].min()
[3, 6, 5].max()
문자 관련
"aaa bbb".replacingOccurrences(of: "aaa", with: "ccc")
"aaa bbb".split(separator: " ")
"aaa bbb".components(separatedBy: " ")
var str = "ab cd"
for index in str.indices {
print(str[index])
}
Array(str)
str.map { String($0) }
String(repeating: "a", count: 10)
extension String {
subscript(idx: Int) -> String {
String(self[index(startIndex, offsetBy: idx)])
}
subscript (r: Range<Int>) -> String {
let start = index(startIndex, offsetBy: r.startIndex)
let end = index(startIndex, offsetBy: r.endIndex)
return String(self[start...end])
}
mutating func removeRange(_ range: Range<Int>) {
let removeStartIndex = index(startIndex, offsetBy: range.startIndex)
let removeEndIndex = index(startIndex, offsetBy: range.endIndex)
removeSubrange(removeStartIndex...removeEndIndex)
}
}
str.removeFirst(3)
let string = "100-200*300-500+20"
let scanner = Scanner(string: string)
let charSet = CharacterSet(charactersIn: "-+*")
while !scanner.isAtEnd {
let operatorStr = scanner.scanCharacter()
let numStr = scanner.scanUpToCharacters(from: charSet)!
}
배열 관련
let result = [3, 5, 1, 4].sorted(by: <)
result.contains(where: { $0 > 4 })
let sets = Set<Int>()
print(sets.insert(2))
print(sets.insert(2))
print(sets.update(2))
var result = Array(repeating: "O", count: n)
result.joined()
루프 관련
for (index, val) in ["aaa", "bbb"].enumerated() {
print("\(index) \(val)")
}
for i in stride(from: 5 , to: 0, by: -1) {
print(i)
}
구조체, 클래스 관련
class A : Equatable {
var aNum : Int
init(_ aNum :Int) {
self.aNum = aNum
}
static func ==(lhs: A, rhs: A) -> Bool {
return lhs.aNum == rhs.aNum
}
}
class A : Comparable {
var aNum : Int
init(_ aNum :Int) {
self.aNum = aNum
}
static func < (lhs: A, rhs: A) -> Bool
static func ==(lhs: A, rhs: A) -> Bool
}
Date
let timeStr = "20:59:57.421"
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm:ss.SSS"
let date = formatter.date(from: timeStr)
date?.timeIntervalSince1970
계속 추가 예정...