https://docs.swift.org/swift-book/documentation/the-swift-programming-language/basicoperators
Documentation
docs.swift.org
Swift 공식 문서 보면서 내 맘대로 정리
Arithmetic Operators
- Swift의 산술 연산자는 오버플로우를 허용하지 않음. → 런타임 에러 발생
- 오버플로우 연산자를 활용하면 오버플로가 발생했을 때 실행을 제어할 수 있다.
Overflow Operators
- Swift에서 정수 상수나 변수를 특정 타입이 담을 수 없는 값으로 설정하면 오류 발생
var potentialOverflow = Int16.max
potentialOverflow += 1
- 오버플로우가 발생하더라도 사용 가능한 비트 수를 자르는 동작이 필요한 경우
- &+, &-, &*
- 오버플로우가 발생하더라도 계산을 계속하여 결과 값이 비트 순환에 의해 잘린 값이 된다.
- 저수준 비트 연산이나 특정 알고리즘에서 값의 순환을 활용하고자 할 때 오버플로우 연산자가 필요할 수 있음
// Int16은 -32,768 ~ 32,768 사이의 정수
var potentialOverflow = Int16.max // 32,767
potentialOverflow = potentialOverflow &+ 1 // -32,768
Range Operators
- 나머지 연산
-9 % 4 // equals -1
// -9 = (4 * -2) + -1
Comparison Operators
- Swift 연산자에는 ===, !==가 존재하고 이는 두 객체 참조가 모두 동일한 인스턴스를 참조하는지 알려준다.
- 튜플의 원소들이 모두 비교 연산자를 수행할 수 있는 값들로 이루어져 있다면 튜플에 비교 연산자를 적용할 수 있다.
Range Operators
- Closed, Half-Open, One-Sided 형태로 범위를 설정할 수 있다.
- closed : 1...5
- half-open : 1..<5
- one-sided : 1...
- 단방향 범위 연산자는 subscript 뿐만 아니라 특정 값을 포함하는지 여부를 확인할 때도 사용 가능하다.
let range = ...5
range.contains(7) // false
range.contains(4) // true
range.contains(1) // true
- 1<.. 와 같이 half-open과 one-sided 혼합 가능
'iOS > Swift' 카테고리의 다른 글
Swift 공식문서 4. Collection Types (0) | 2024.09.08 |
---|---|
Swift 공식 문서 3. Strings and Characters (2) (1) | 2024.08.31 |
Swift API Design Guidelines (0) | 2024.08.29 |
Swift 공식 문서 3. Strings and Characters (1) (0) | 2024.08.29 |
Swift 공식 문서 1. The Basics (0) | 2024.08.28 |