Swift의 Tuple

yxxjxn·2023년 1월 24일

Swift Grammer

목록 보기
4/6

튜플

  • 2개 이상의 연관된 데이터를 저장하는 타입이다.
  • 멤버는 튜플을 만들때 결정되므로 추가 및 삭제가 불가능하다.

튜플의 선언

var threeValues = ("usingkim", 20, "Busan")

튜플의 접근

print(threeValues.0) // usingkim

Named Tuple

named tuple의 선언

var namedThreeValues = (name: "usingkim", age: 20, address: "Busan")

named tuple의 접근

// 기본 접근과 똑같이 가능
print(namedThreeValues.0) // usingkim
// 이름으로 접근 가능
print(namedThreeValues.age) // 20

튜플의 분해

var (f, s, t) = threeValues

튜플 값의 비교

  • 두개의 튜플 비교가 가능하다
  • 왼쪽 멤버부터 한번에 하나씩 비교하고, 같을 경우 다음 멤버를 비교함

튜플과 switch문

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

switch iOS {
case ("Swift", "5"):
    print("스위프트 버전 5입니다.")
case ("Swift", "4"):
    print("스위프트 버전 4입니다.")
default:
    break
}

바인딩을 이용할 수 있다.

switch coordinate {
case (let distance, 0), (0, let distance):   // x축이나 y축에 있으면 출력하라는 코드
    print("X 또는 Y축 위에 위치하며, \(distance)만큼의 거리가 떨어져 있음")
default:
    print("축 위에 있지 않음")
}

witch coordinate {
case (let x, let y) where x == y:      //일단 x, y를 상수로 지정해주고, 그리고 나서 비교한다.
    print("(\(x), \(y))의 좌표는 y = x 1차함수의 그래프 위에 있다.")
    
case let (x, y) where x == -y:
    print("(\(x), \(y))의 좌표는 y = -x 1차함수의 그래프 위에 있다.")
    
case let (x, y):
    print("(\(x), \(y))의 좌표는 y = x, 또는 y = -x 그래프가 아닌 임의의 지점에 있다.")
}
profile
macos

0개의 댓글