예전에는 리턴값이 없는 함수를 프로시저라고 불렀다.
부호(1자리) + 지수(8자리) + 가수(23자리) = 32비트
single-precision 32-bit IEEE 754 floating point
부호(1자리) + 지수(11자리) + 가수(52자리) = 64비트
double-precision 64-bit IEEE 754 floating point
Dictionary
// Dictionary 값 할당
var responseMessages = [200: "OK",
403: "Access forbidden",
404: "File not found",
500: "Internal server error"]
// emptyDict
var emptyDict: [String: String] = [:]
// uses key-based
let httpResponseCodes = [200, 403, 301]
for code in httpResponseCodes {
if let message = responseMessages[code] {
print("Response \(code): \(message)")
} else {
print("Unknown response \(code)")
}
}
// Prints "Response 200: OK"
// Prints "Response 403: Access Forbidden"
// Prints "Unknown response 301"
var interestingNumbers = ["primes": [2, 3, 5, 7, 11, 13, 17],
"triangular": [1, 3, 6, 10, 15, 21, 28],
"hexagonal": [1, 6, 15, 28, 45, 66, 91]]
for key in interestingNumbers.keys {
interestingNumbers[key]?.sort(by: >)
}
print(interestingNumbers["primes"]!)
// Prints "[17, 13, 11, 7, 5, 3, 2]"
func components(separatedBy separator: String) -> [String]
func split(separator: Character, maxSplits: Int = Int.max, omittingEmptySubsequences: Bool = true) -> [Substring]
String.components와 String.split은 비슷하다
Conclusion : split(separator:)
is faster than components(separatedBy:)
.
characterSet.decimalDigits.inverted
joined()
contains
해당 문자열(String)에 비교하는 문자가 있는지 확인
// sort() vs sorted()
// sort()는 mutable
var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
students.sort()
print(students)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
// sorted()는 immutable
let students: Set = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
let sortedStudents = students.sorted()
print(sortedStudents)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
Integer. 부호 있는 정수값 (127 ~ -128 까지 저장이 가능하다.)
실수 범위이다. Float는 32bit, Double은 그 두 배인 64bit까지 표현 가능하다.
부호(1자리) + 지수(8자리) + 가수(23자리) = 32비트
single-precision 32-bit IEEE 754 floating point
부호(1자리) + 지수(11자리) + 가수(52자리) = 64비트
double-precision 64-bit IEEE 754 floating point
let str = "Hello!"
여러줄을 나눠 쓸 때는
let str = """
He said,
Hello World!
"""
문자열 길이 반환: str.count
루프를 통해 전체 String에 접근하기
let str = "Hello"
for char in str {
print(char)
}
enumerated()
for (index, value) in str.enumerated() {
print("\(index). \(value)")
}
개별 인덱스 접근 가능하다
let str = "Hello!"
str[str.index(str.startIndex, offsetBy: 1)]
// "e"
true
or false
타입 안전성(type safety)을 위해 boolean 값이 아닌 (non-Boolean)값으로 치환되는 것을 막아줍니다
let i = 1 if i { // this example will not compile, and will report an error }