Skip to content

Latest commit

Β 

History

History

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을 μ‚¬μš©ν•˜λŠ” 이유 β†’ ν•¨μˆ˜λŠ” μ›μΉ™μ μœΌλ‘œ 리턴값이 ν•œ 개만 μ‘΄μž¬ν•¨ (κΌ­ νŠœν”Œλ§Œ κ°€λŠ₯ν•œκ²ƒμ€ μ•„λ‹˜!)