[Swift 3] 기본 연산자 (Basic Operators)
출처
http://kka7.tistory.com/4
할당 연산자 ( = )
할당 연산자는 a 의 값을 b 의 값으로 초기화 하거나 갱신한다.
우측이 어려 값을 갖는 튜플이면 한번에 여러개의 상수나 변수 요소들로 분해할 수 있다.
let (x, y) = (1, 2)
Objective-C 와 다르게
Swift 에서의 할당 연산자는 값을 반환하지 않는다.
if x = y {
// This is not valid, because x = y does not return a value.
}
이 기능은 할당 연산자가 우연치 않게 동등 연산자로 사용되는 것을 막아주기 위해 도입되었다.
산술 연산자 ( + , - , * , / )
Swift 의 오버플로우 연산자 (&+, &*, ...) 를 통해 동작 값을 선택할 수 있다.
덧셈 연산자는 string 연결을 지원한다.
1 + 2 // equals 3
5 - 3 // equals 2
2 * 3 // equals 6
10.0 / 2.5 // equals 4.0
"hello, " + "world" // equals "hello, world"
비교연산자 ( ==, != , === , !==, <= , ... )
let name = "world"
if name == "world" {
print("hello, world")
} else {
print("I'm sorry \(name), but I don't recognize you")
}
(1, "zebra") < (2, "apple") // true because 1 is less than 2
(3, "apple") < (3, "bird") // true because 3 is equal to 3, and "apple" is less than "bird"
(4, "dog") == (4, "dog") // true because 4 is equal to 4, and "dog" is equal to "dog"
삼항 조건 연산자
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
Nil 결합 연산자 (Nil-Coalescing Operator)
nil 결합 연산자 ( a ?? b ) 는 옵셔널 a 에 값이 있으면
언래핑하고 a 가 nil 이면 기본값 b 를 반환한다.
아래 조건과 동일하다.
a != nil ? a! : b
표현식 a 는 항상 옵셔널 타입이다.
표현식 b 는 a 에 저장된 타입과 같아야한다.
let defaultColorName = "red"
var userDefinedColorName: String? // defaults to nil
var colorNameToUse = userDefinedColorName ?? defaultColorName //"red"
범위 연산자
폐쇄된 범위 연산자 ( ... )
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
반 개방 범위 연산자 ( ..< )
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("Person \(i + 1) is called \(names[i])")
}