
할당 연산자 = 는 값을 초기화시키거나 변경
상수, 변수에 모두 사용 가능
Objective-C 또는 C와 다르게 값을 반환하지 않는다.
if x = y { ... } // Error
4가지 표준 사칙 연산자인 +, -, *, /을 제공
Objective-C 또는 C와 다르게 오버플로우되는 것을 허용하지 않는다.
addingReportingOverflow() 등을 통해 오버플로우를 허용할 수 있다.
표준 C에서 제공하는 비교 연산자를 모두 지원
객체 비교를 위해 식별 연산자 ===과 !==를 제공
===는 같은 인스턴스를 참조하고 있는지 비교하는 역할let book1 = Book(title: "Hello")
let book2 = Book(title: "Hello")
let book3 = book1
book1 === book2 // false
book1 === book3 // true
==는 stack, ===는 heap 영역에서 값 비교a ?? b 형태로, 옵셔널인 a가 nil이 아니면 a를, 그렇지 않으면 b를 반환
let defaultValue = "Default"
let optionalValue: String? // nil
let value = optionalValue ?? defaultValue
// value : "Default"
닫힌 범위 연산자로, 1...5이면 1, 2, 3, 4, 5에 해당
let range: ClosedRange<Int> = 1...5
for r in range { } // r = 1, 2, 3, 4, 5
// or
for r in 1...5 { } // r = 1, 2, 3, 4, 5
반 닫힌 범위 연산자로, 1..<5이면 1, 2, 3, 4에 해당
let range: Range<Int> = 1..<5
for r in range { } // r = 1, 2, 3, 4
// or
for r in 1..<5 { } // r = 1, 2, 3, 4
단방향 범위 연산자로,
...5이면 ..., -2, -1, 0, 1, 2, 3, 4, 5 에 해당
..<5이면 ..., -2, -1, 0, 1, 2, 3, 4에 해당
배열의 인덱스로도 사용 가능
let someInts = [0, 1, 2, 3, 4, 5]
for someInt in someInts[...3] { } // someInt = 0, 1, 2, 3
// or
for someInt in someInts[..<4] { } // somtInt = 0, 1, 2, 3