Skip to content

Latest commit

 

History

History

3.Tuple

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

튜플(Tuple)

☝ 원하는 연관된 데이터의 조합으로 어떤 형태든 만들 수 있는 타입!


  • 변수를 선언과 동시에 해당 멤버는 결정되므로 추가/삭제는 불가하다.
let twoNumbers: (Int, Int) = (1, 2)
type(of: twoNumbers)

var threeValues = ("홍길동", 20, "서울")
threeValues = ("신승재", 24, "화성") // 반드시 같은 형태로!

  • 튜플의 데이터 접근은 .으로 할 수 있다.
threeValues.0 // 홍길동
threeValues.2 // 서울

  • Named Tuple!(이름 있는 튜플)
var threeValues = (Name: "홍길동", Age: 20, Region: "서울")

threeValues.Name // 홍길동

Named Tuple은 코드의 가독성을 높혀주고 접근시 용이하다.


  • 튜플의 분해
let (first, second, third) = (1, 2, 3)

튜플의 분해를 사용하면 각 요소를 각각 바인딩이 가능하다.


  • 튜플 활용 - if, switch
let iOS = (language: "Swift", version: "5")

if iOS == ("Swift", "5") {
	print("스위프트 버전 5 입니다")
}

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

  • 튜플 활용 - 바인딩
var coorinate = (9, 0)

switch coorinate {
	// 형태가 (let distance, 0)와 같기 때문에
	case (let distance, 0), (0, let distance):
		print("X축 또는 Y축 위에 위치하며, \(distance)만큼의 거리가 떨어져있음")
	default:
		print("축 위에 있지 않음")
}

// X축 또는 Y축 위에 위치하며, 9만큼의 거리가 떨어져있음

함수에서 Tuple을 사용하는 이유 → 함수는 원칙적으로 리턴값이 한 개만 존재함 (꼭 튜플만 가능한것은 아님!)