Sanghyuk's Dev

[Swift] Tuples

iOS/Swift2018. 5. 23. 17:39


※ Unnamed Tuple

 let number: Int = 10

let threeNumbers: (Int, Int, Int) = (1, 2, 5)
type(of: threeNumbers)

threeNumbers

threeNumbers.0
threeNumbers.1
threeNumbers.2


※ Decomposition

let numbers = threeNumbers
numbers
numbers.0
numbers.1

let (first, second, third) = threeNumbers
first
second

// wildcard pattern
let (_, second1, third1) = threeNumbers
second1
third1


※ Named Tuple

let iOS = (language: "Swift", version: "4")

//let iOS: (language: String, version: String) = (language: "Swift", version: "4")
//let iOS: (language: String, version: String) = ("Swift", "4")
//let iOS = (language: "Swift", version: "4")

iOS.0
iOS.1

iOS.language
iOS.version


※ Comparison Operators

- Tuple은 7개 미만 요소에 대한 비교 연산자가 포함되어있다.

- 7개 이상의 요소를 비교하기 위해서는 비교 연산자를 직접 구현해야 한다.

//var something1: (Int, Int, Int, Int, Int, Int) = (1,2,3,4,5,6)
//var something2: (Int, Int, Int, Int, Int, Int) = (1,2,3,4,5,6)
//something1 == something2

(1, "zebra") < (2, "apple")   // true
(3, "apple") < (3, "bird")    // true
(4, "dog") == (4, "dog")     // true


※ Tuple Matching

let somePoint = (1, 1)

switch somePoint {
case (0, 0):
    print("\(somePoint) is at the origin")
case (_, 0):
    print("\(somePoint) is on the x-axis")
case (0, _):
    print("\(somePoint) is on the y-axis")
case (-2...2, -2...2):
    print("\(somePoint) is inside the box")
default:
    print("\(somePoint) is outside of the box")
}


※ Dictionary Enumeration

let fruits = ["A": "Apple", "B": "Banana", "C": "Cherry"]

for (key, value) in fruits {
    print(key, value)
}

for element in fruits {
    print(element.key, element.value)
}


'iOS > Swift' 카테고리의 다른 글

[Swift] Array  (0) 2018.05.23
[Swift] Control Transfer Statement  (0) 2018.05.23
[Swift] Loops  (0) 2018.05.23
[Swift] Conditional Statements  (0) 2018.05.23
[Swift] Function  (0) 2018.05.18