ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 와일드카드 패턴
    Swift 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판 (야곰 지음)

    'Swift' 카테고리의 다른 글

    Deep copy & Shallow copy  (0) 2021.05.25
    패턴 (식별자, 값 바인딩, 튜플)  (0) 2021.05.19
    개념 자문자답  (0) 2021.04.29
    Result  (0) 2021.04.28
    Closure 심화  (0) 2021.04.27
Designed by Tistory.