Link
Notice
HIT해
[Swift 기초문법 - 59] 패턴 매칭 연산자 ~= 본문
728x90
패턴 매칭 연산자란?
패턴 매칭 연산자 '~='는 왼쪽 피연산잔가 오른쪽 피연산자와 일치하는지 확인하는 역할을 한다.
주로 switch 구문에서 케잇 ㅡ패턴과 값을 비교하는 데 사용되며 , Swift가 제공하는 여러 종류의 패턴을 매칭할 수 있다.
기본구문
a ~= b
여기서 a는 패턴 b는 매칭하는 값이다.
패턴 매칭 연산자는 Bool 값을 반환하며, 패턴이 값과 일치하면 ture, 그렇지 않다면 false를 반환한다.
switch 구문에서의 활용
switch 구문 속 각 케이스에서는 패턴 매칭 연산자가 자동으로 적용되고 있다.
let value = 5
switch value {
case 0:
print("Value is zero")
case 1...10:
print("Value is between 1 and 10")
default:
print("Value is something else")
}
직접 사용하기
import UIKit
let statusCode = 500
// if (400...500).contains(statusCode) 와 동일하다
if (400...500) ~= statusCode {
print("들어옴")
}
위 코드에서 statudCode가 400~500에 속하는지 확인한다.
패턴 매칭 연산자의 확장
Swift 에서 ~= 연산자는 다양한 상황에서 동작하도록 오버로드되어 있다.
이러한 오버로드 덕분에 ~=는 여러 가지 패턴과 함께 사용될 수 있다.
1. 값 패턴
단순히 값과 일치하는지 확인
let name = "John"
if "John" ~= name {
print("Hello, John!")
}
2. 범위 패턴
특정 범위에 포함되는지 확인
let age = 25
if 18...30 ~= age {
print("You're in your twenties.")
}
3. 열거형 케이스 패턴
열거형의 특정 케이스와 값이 일치하는지 확인
enum Status {
case success, failure
}
let currentStatus = Status.success
if Status.success ~= currentStatus {
print("Operation was successful.")
}
4. 커스텀 패턴 매칭
사용자 정의 타입에서도 ~= 연산자를 구현하여 패턴 매칭 기능을 확장할 수 있다.
struct Person {
let name: String
let age: Int
}
func ~=(pattern: (String) -> Bool, value: Person) -> Bool {
return pattern(value.name)
}
let person = Person(name: "John", age: 25)
if { $0 == "John" } ~= person {
print("Found John!")
}
이상으로 패턴 매칭 연산자를 알아보았다.
'Swift > 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 60] while, repeat-while (0) | 2024.08.20 |
---|---|
[Swift 기초문법 - 57] Tuple (0) | 2024.08.20 |
[Swift 기초문법 - 58] Any, AnyObject, some (0) | 2024.08.19 |
[Swift 기초문법 - 56] Set 내장함수 (0) | 2024.08.19 |
[Swift 기초문법 - 55] Dictionary 반복 (0) | 2024.08.19 |