notes
IOS - 범위 연산자
Swift 범위 연산자 ...·..<의 동작과 컬렉션·반복문 활용 메모.
Swift 범위 연산자 정리
1. 닫힌 범위 연산자 (a...b)
- 설명: a부터 b까지 모두 포함하는 범위
- 타입:
ClosedRange - 예시:
for i in 1...5 { print(i) // 1, 2, 3, 4, 5 } let range = 1...5 // 1, 2, 3, 4, 5
2. 반닫힌 범위 연산자 (a..<b)
- 설명: a부터 b 직전까지 (b는 포함하지 않음)
- 타입:
Range - 예시:
for i in 1..<5 { print(i) // 1, 2, 3, 4 } let range = 1..<5 // 1, 2, 3, 4
3. 일방향 범위 연산자
a) Partial Range Through (...b)
- 설명: 시작값 없이 b까지 포함
- 타입:
PartialRangeThrough - 예시:
let range = ...5 // ...5 (음의 무한대 ~ 5) range.contains(3) // true range.contains(6) // false
b) Partial Range From (a...)
- 설명: a부터 끝까지
- 타입:
PartialRangeFrom - 예시:
let range = 3... // 3 ~ 무한대 range.contains(100) // true range.contains(2) // false
c) Partial Range Up To (..<b)
- 설명: 시작값 없이 b 직전까지
- 타입:
PartialRangeUpTo - 예시:
let range = ..<5 // 음의 무한대 ~ 4 range.contains(4) // true range.contains(5) // false
4. 패턴 매칭 연산자 (~=)
- 설명: 값이 범위에 포함되는지 확인할 때 사용
- 예시:
let range = 1...5 print(range ~= 3) // true (3이 1...5에 포함) print(range ~= 7) // false
5. 배열 슬라이싱에서의 사용
let arr = [10, 20, 30, 40, 50]
let slice1 = arr[1...3] // [20, 30, 40]
let slice2 = arr[..<3] // [10, 20, 30]
let slice3 = arr[2...] // [30, 40, 50]
6. 정리 표
배열 인덱스는 거의 ..< (끝 미포함)로 잡고, ...는 “양끝 포함 루프”일 때. 헷갈리면 표만 보면 된다.