일모도원(日暮途遠) 개발자
[Swift] ~= 연산자 본문
스위프트에는 ~= 라는 특이한 연산자가 있다.
범위 연산자(영어 이름은 Expression Pattern 인거 같다)라고도 하는데 특정 값이 어떤 범위에 있는지 여부를 알려준다.
"범위 ~= 특정 값"의 형태로 사용하며 결과는 Bool값으로 반환 된다.
아래 예를 보면
0...10 ~= 5 는 5가 0~10사이에 있으므로 결과는 true이다.
0...10 ~= 20 은 20이 0~10사이에 없으므로 결과는 false이다.
let arrayA = 0...10
let a = arrayA ~= 5
let b = arrayA ~= 10
let c = arrayA ~= 20
print("result a : \(a)") //true
print("result b : \(b)") //true
print("result c : \(c)") //false
문자에 대해서도 사용가능하다.
"a"..."z" ~= "a" 는 a가 a~z사이에 있으므로 결과는 true이다.
"a"..."z" ~= "1" 은 1은 a~z사이에 없으므로 결과는 false이다.
아래로 테스트해보니 한글자라도 범위에 있으면 true를 반환하는거 같다.
"a"..."z" ~= "k1" 은 k가 a~z사이에 있으므로 결과는 true이다.
"a"..."z" ~= "kk" 은 k가 a~z사이에 있으므로 결과는 true이다.
let arrayB = "a"..."z"
let aa = arrayB ~= "a"
let bb = arrayB ~= "1"
let cc = arrayB ~= "k1"
let dd = arrayB ~= "kk"
print("result aa : \(aa)") //true
print("result ba : \(bb)") //false
print("result cc : \(cc)") //true
print("result dd : \(dd)") //true
if문에서도 아래처럼 사용할수 있다.
5가 0~10사이에 있으므로 true가 된다.
var i = 5
if 0...10 ~= i {
print("\(i)는 범위내에 있습니다.")
} else {
print("\(i)는 범위밖에 있습니다.")
}
https://docs.swift.org/swift-book/ReferenceManual/Patterns.html
https://holyswift.app/expression-pattern-operator-in-swift/
'프로그래밍 언어 > 스위프트' 카테고리의 다른 글
[Swift] Range를 이용한 Array생성 (0) | 2022.12.07 |
---|---|
[스위프트] switch문에서 @unknown default (0) | 2022.09.13 |
[Swift] 문자열에 숫자가 있는거 정렬하기 (0) | 2022.09.03 |
[Swift] @objc가 뭐지? (0) | 2022.07.23 |
[Swift] class func vs static func (0) | 2022.07.20 |