bbiguduk님이 번역해 주신 Swift 공식문서를 보며, 기초부터 탄탄히 기본 문법을 정리합니다.
제가 이미 알거나 정리가 불필요하다 판단되는 내용은 생략합니다.
기본적인 연산자 사용법은 다른 언어들과 크게 다르지 않아서 정리하지 않겠습니다..!
a != nil ? a! : b
nil-결합 연산자는 위 코드를 짧게 표현한 것이다.
a ?? b
nil-결합 연산자는 옵셔널 a
에 값이 있으면 a
를 풀거나 a
가 nil
이면 기본 값 b
를 반환한다. a
는 항상 옵셔널 타입이고, 표현식 b
는 a
에 저장된 타입과 같야아한다.
let defaultColorName = "red"
var userDefinedColorName: String?
var colorNameToUse = userDefinedColorName ?? defaultColorName // "red"
userDefinedColorName
는 nil
인 Optional(String)
으로 정의되었기 때문에, 값을 선택하기 위해 nil-결합 연산자를 사용할 수 있다. 그래서 colorNameToUse
는 defaultColorName
의 값인 “red”값을 가지게 된다.
Swift에서 닫힌 범위 연산자는 a…b
로 표현하는데, 이는 a
이상 b
이하를 나타낸다. 그리고 a
는 b
보다 클 수 없다. 범위 연산자는 for-in
반복문에서 모든 값을 사용할 범위를 반복할 때 사용한다.
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
반-열림 범위 연산자는 a..<b
로 표현하느데, 이는 a
이상 b
미만을 나타낸다.
for index in 1..<5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
단-방향 범위는 배열의 한 부분에서 배열의 끝까지 모든 요소를 포함하는 범위를 뜻한다. 연산자의 한쪽을 생략해서 사용한다.
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names[2...] {
print(name)
}
// Brian
// Jack
for name in names[...2] {
print(name)
}
// Anna
// Alex
// Brian