Swift

와일드카드 패턴

GREEN.1229 2021. 5. 18. 15:07

안녕하세요. 그린입니다🟢

이번에는 와일드카드 패턴에 대해 알아보겠습니다🧑🏻‍💻

 

우선 패턴부터 어떤건지 알아보도록 하죠!

 

패턴(Pattern)

 : 단독 혹은 복합적인 값을 구조화하여 나타내는 것으로 코드에서 이러한 패턴을 찾도록 비교하는것패턴매칭이라 합니다.

패턴의 종류

 1) 값 추출 및 무시하는 패턴

  - 와일드카드, 바인딩, 튜플, 식별자

 2) 패턴매칭을 위한 패턴

  - 열거형 케이스, 타입캐스팅, 옵셔널, 표현

 

여기서 이번 포스팅에서는 값을 무시하는 패턴인 와일드카드 패턴에 대해 보겠습니다.

와일드카드 패턴(Wildcard Pattern)

 : _ 식별자를 사용하여 해당 위치에 어떤 값이 와도 무시하고 항상 실행되게 하는 패턴

코드를 통한 와일드카드 패턴 사용🖥

class WildCardPattern {
    let name: String = "GREEN"
    
    // 어떤값이 와도 해당 switch case문을 실행
    switch name {
    case _: 
        print(data)
    }
    
    let name: String? = "GREEN"
    
    // 옵셔널 값으로도 와일드카드 패턴 사용이 가능
    switch name {
    case "GREEN"?:
        print(data)
    // 위 케이스인 그린외 값이 있을때 동작
    case _?:
        print("Not GREEN")
    // 값이 없을때 동작 (해당 케이스가 없고 값이 없다면 동작, default로 나눠줘도 가능)
    case nil:
        print("Not Input")
    }
    
    let tuple = ("GREEN", "BLUE")
    
    // 튜플로도 인자값에 따라 와일드카드 식별자 사용 가능
    switch tuple {
    // 첫 인자에 그린이 맞으면 실행
    case ("GREEN", _):
        print("GREEN")
    // 위 케이스가 아니면 무조건 실행
    case (_, _):
        print("Not GREEN")
    }
    
    // 반복문에서도 사용 가능
    for _ in 0..<3 {
        print("GREEN")
 }
    
    

 와일드카드 패턴을 위와 같이 다양하게 사용해볼 수 있습니다.

 패턴들은 대부분 switch문에서 사용될때 편리하게 사용됩니다.

 

[참고자료]

스위프트 프로그래밍 3판 (야곰 지음)