수색…


소개

튜플 유형은 괄호로 묶인 쉼표로 구분 된 유형 목록입니다.

이 유형 목록은 요소의 이름을 가질 수 있으며 이러한 이름을 사용하여 개별 요소의 값을 나타낼 수 있습니다.

요소 이름은 식별자 다음에 콜론 (:)이옵니다.

공통 사용 -

함수의 반환 유형으로 튜플 유형을 사용하여 함수가 여러 값을 포함하는 단일 튜플을 반환하도록 할 수 있습니다.

비고

튜플은 값 유형으로 간주됩니다. 튜플에 대한 추가 정보는 developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html 에서 확인할 수 있습니다.

튜플이란 무엇입니까?

튜플은 여러 값을 단일 복합 값으로 그룹화합니다. 튜플 내의 값은 모든 유형이 될 수 있으며 서로 동일한 유형일 필요는 없습니다.

튜플은 값의 양을 그룹화하여 만듭니다.

let tuple = ("one", 2, "three")

// Values are read using index numbers starting at zero
print(tuple.0) // one
print(tuple.1) // 2
print(tuple.2) // three

또한 튜플이 정의 될 때 개별 값의 이름을 지정할 수 있습니다.

let namedTuple = (first: 1, middle: "dos", last: 3)

// Values can be read with the named property
print(namedTuple.first)  // 1
print(namedTuple.middle) // dos

// And still with the index number
print(namedTuple.2)      // 3

변수로 사용할 때 이름을 지정할 수도 있고 내부에 선택적 값을 가질 수도 있습니다.

var numbers: (optionalFirst: Int?, middle: String, last: Int)?

//Later On
numbers = (nil, "dos", 3)

print(numbers.optionalFirst)// nil
print(numbers.middle)//"dos"
print(numbers.last)//3

개별 변수로 분해

튜플은 다음 구문을 사용하여 개별 변수로 분해 할 수 있습니다.

let myTuple = (name: "Some Name", age: 26)
let (first, second) = myTuple

print(first) // "Some Name"
print(second)  // 26

튜플에 이름없는 속성이 있는지 여부에 관계없이이 구문을 사용할 수 있습니다.

let unnamedTuple = ("uno", "dos")
let (one, two) = unnamedTuple
print(one) // "uno"
print(two) // "dos"

밑줄 ( _ )을 사용하면 특정 속성을 무시할 수 있습니다.

let longTuple = ("ichi", "ni", "san")
let (_, _, third) = longTuple
print(third) // "san"

함수의 반환 값으로서의 튜플

함수는 튜플을 반환 할 수 있습니다.

func tupleReturner() -> (Int, String) {
    return (3, "Hello")
}

let myTuple = tupleReturner()
print(myTuple.0) // 3
print(myTuple.1) // "Hello"

매개 변수 이름을 지정하면 반환 값에서 사용할 수 있습니다.

func tupleReturner() -> (anInteger: Int, aString: String) {
    return (3, "Hello")
}

let myTuple = tupleReturner()
print(myTuple.anInteger) // 3
print(myTuple.aString) // "Hello"

타이프라일을 사용하여 튜플 유형 이름 지정하기

경우에 따라 코드 전체의 여러 위치에서 동일한 튜플 유형을 사용하려고 할 수 있습니다. 이는 특히 터플이 복잡한 경우에 지저분해질 수 있습니다.

// Define a circle tuple by its center point and radius
let unitCircle: (center: (x: CGFloat, y: CGFloat), radius: CGFloat) = ((0.0, 0.0), 1.0)

func doubleRadius(ofCircle circle: (center: (x: CGFloat, y: CGFloat), radius: CGFloat)) -> (center: (x: CGFloat, y: CGFloat), radius: CGFloat) {
    return (circle.center, circle.radius * 2.0)
}

둘 이상의 장소에서 특정 튜플 유형을 사용하는 경우 typealias 키워드를 사용하여 튜플 유형의 이름을 지정할 수 있습니다.

// Define a circle tuple by its center point and radius
typealias Circle = (center: (x: CGFloat, y: CGFloat), radius: CGFloat)

let unitCircle: Circle = ((0.0, 0.0), 1)

func doubleRadius(ofCircle circle: Circle) -> Circle {
    // Aliased tuples also have access to value labels in the original tuple type.
    return (circle.center, circle.radius * 2.0)
}

그러나 너무 자주이 작업을 수행하는 경우 struct 대신 사용해보십시오.

값 바꾸기

튜플은 임시 변수를 사용하지 않고 2 개 이상의 변수 사이에서 값을 교환하는 데 유용합니다.

2 개의 변수가있는 예

주어진 2 개의 변수들

var a = "Marty McFly"
var b = "Emmett Brown"

우리는 값을 쉽게 교환 할 수 있습니다.

(a, b) = (b, a)

결과:

print(a) // "Emmett Brown" 
print(b) // "Marty McFly"

4 개의 변수가있는 예

var a = 0
var b = 1
var c = 2
var d = 3

(a, b, c, d) = (d, c, b, a)

print(a, b, c, d) // 3, 2, 1, 0

스위치의 사례 인 튜플

스위치에 튜플 사용

let switchTuple = (firstCase: true, secondCase: false)
   
switch switchTuple {   
 case (true, false):
    // do something
 case (true, true):
    // do something
 case (false, true):
    // do something
 case (false, false):
    // do something
}

또는 열거 형 (Enum)과 결합하여 예를 들어 크기 클래스 사용 :

    let switchTuple = (UIUserInterfaceSizeClass.Compact, UIUserInterfaceSizeClass.Regular)
    
    switch switchTuple {
    case (.Regular, .Compact):
        //statement
    case (.Regular, .Regular):
        //statement
    case (.Compact, .Regular):
        //statement
    case (.Compact, .Compact):
        //statement
    }


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow