-
Swift - Tuple Decomposition, MatchingProgramming/Swift 2020. 10. 13. 17:17
안녕하세요 :)
오늘은 Tuple Decompostion과 Tuple Matchng에 대해서 같이 공부해 보도록 해요!
Tuple Decomposition
Tuple을 생성했는데 Tuple Member를 각각 상수나 변수에 저장해야 할 때가 있습니다.
이럴 때 어떻게 하면 될까요??
이렇게 상수나 변수에 각 멤버의 값을 할당하면 됩니다.
이 방법을 사용해도 오류가 발생하지는 않죠? 하지만 이때 Tuple Decompostion을 사용하면 코드를 더 깔끔하게 만들 수 있습니다.
문법은 이렇습니다.
여기서 주의할 점은 Tuple Member의 수와 생성할 상수나 변수의 이름의 개수가 일치해야 합니다.
이렇게 Member의 수와 이름의 수가 맞지 않으면 오류가 발생합니다. 그렇다면 address는 상수나 변수로 만들고 싶지 않다면 어떻게 해야 할까요??
이때는 _(WildcardPattern)을 사용해서 address를 저장할 상수나 변수를 생략해줘야 합니다!
Tuple Matching
Tuple을 조건에 따라 분기를 해야 할 경우가 있습니다.
이때 if와 switch 둘 다 사용해도 문제는 없지만 switch문은 Tuple Matching을 지원합니다.
switch문에서 value에 TupleExpression을 사용할 수 있습니다.
먼저 if문을 먼저 사용해 볼게요!
bus의 색이 Red이고 가격이 2000원 이상이면 이 버스는 광역 버스라는 것을 나타내는 코드입니다.
같은 코드를 switch문을 사용해서 작성해 보겠습니다.
case 에는 Tuple Member의 순서대로 값을 적어줍니다.
마찬가지로 이 경우에도 Member의 수와 값의 수가 일치해야 합니다.
2000... 과 같이 Interval Matching도 사용 가능합니다.
case ("Red", 2000...):은 bus.color == "Red" && bus.price >= 2000와 같은 코드입니다.
한눈에 봐도 코드가 간단해졌죠??
또한 ValueBinding과 Wildcard Pattern 그리고 Where을 사용할 수 있습니다.
이 코드를 살펴보도록 하겠습니다.
price를 won으로 바인딩을 시키고 won이 2000보다 크거나 같은지 조건을 확인합니다.
이렇게 tuple matching에서 조건을 추가하고 싶다면 where을 사용하면 됩니다.
참고자료
여러분의 새로운 도전을 응원합니다 | KxCoding
Mastering SwiftUI 더 적은 코드로, 더 멋진 UI 만들기
kxcoding.com
https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
The Basics — The Swift Programming Language (Swift 5.6)
The Basics Swift is a new programming language for iOS, macOS, watchOS, and tvOS app development. Nonetheless, many parts of Swift will be familiar from your experience of developing in C and Objective-C. Swift provides its own versions of all fundamental
docs.swift.org
728x90'Programming > Swift' 카테고리의 다른 글
Swift - String - Escape sequence, String Interpolation (0) 2020.10.15 Swift - String - String의 종류, Multi-line String Literal (0) 2020.10.14 Swift - Tuple (0) 2020.10.12 Swift - Closure (1) 2020.10.11 Swift - Function Notation, Function Type (0) 2020.10.09