드디어 기본 연산자 마지막 편이다.
범위연산자가 이전에 한번 잠깐 다룬적이 있다.
Closed Range Operator( 폐쇄 범위 연산자)
범위연산자는 말그대로 범위를 정의하는 연산이다
이전에 for 문을 적을때 아래와같은 형태로 적었는데
for i in 0 ... 10 {
}
0 ... 10 이 부분이 범위 연사자를 사용한 부분이다.
0이상 10이하를 지정한것인데 for 문은 이러한 범위에서 순서대로 0, 1, 2 가져오며 반복한다는 의미이다.
0 ... 10 이러한 범위 연산자를 폐쇄 범위 연사자라 하며
양 끝이 정해져있다 하여 폐쇄 이다.
그럼 양끝이 정해져있지 않은것도 있다.
Half-Open Range Operator
한글로 뭐라고 번역해야 할지 모르겠다.
위의 폐쇄 범위 연산자와 유사한데
맨 뒤 끝 이전까지 범위를 지정한 것을 일컫는다.
0 ..< 10 이렇게하면 0이상 10미만이다. 점이 이번엔 두개다 중요한 부분이다.
One-sided Ranges( 단측 범위 연산자 )
이번엔 양 끝중 한쪽만 범위를 지정한 것이다.
이미 있는 배열에 대해 범위를 지정할때 이미 양끝이 정해져 있기에 한쪽만 지정해줘서 편하게 사용한다.
위의 폐쇄, 하프오픈 범위 연산자랑 비슷하다.
ex1)
let alphabet = ["A","B","C","D","E"]
for c in alphabet[...2] {
print(c)
}
print()
for c in alphabet[..<2] {
print(c)
}
print()
for c in alphabet[2...] {
print(c)
}
print()
결과:
A
B
C
A
B
C
D
E
첫번째 for문은 alphabet 배열의 처음부터 인덱스2, 그러니까 처음부터 세번째까지 범위를 지정하여
print문에서 A B C가 출력된것이다.
두번째 for문은 alphabet 배열의 처음부터 인덱스2이전까지, 그러니까 처음부터 두번째까지 범위를 지정하여
print문에서 A B가 출력된다.
세번째 for문은 인덱스 2 부터(세번째 부터) 끝까지 범위를 지정하여
print문에서 C D E가 출력되었다
단 2초과에 해당하는 <.. 은 없다
스위프트에는 사용자가 직접 연산자를 지정할 수 있는데 만약 필요하다면 지정해서 사용하면 된다.
이것 외에도 따로 range를 생성해서 지정해줄수 있다.
해당 부분에 대해 알고 싶다면 Range, NSRange에 대해 검색해봄이 좋을듯하다.
난 따로 생성해서 지정할땐 String의 부분을 추출하거나 부분 속성을 변경해줄때만 사용해보고 그외엔 없다.
'강의를해보고싶었어요 > [강좌] 언어 기본서' 카테고리의 다른 글
스위프트 언어 기본 목록 (0) | 2022.09.19 |
---|---|
[스위프트 기본] 10. 논리 연산자 (0) | 2021.05.07 |
[스위프트 기본] 8. nil-coalescing 연산자 (0) | 2021.04.28 |
[스위프트 기본] 7. 3항 연산자 (0) | 2021.04.27 |
[스위프트 기본] 6. 조건문과 반복문 (0) | 2021.04.26 |