-
Objective-C ์๋ ์์๋, Swift์์ ์๊ฐ๋ ์๋ก์ด ํ์ .
-
**(val1, val2, val3)**
-
๊ทธ๋ฃน ์์ ๊ฐ**member**๋ค์ ๋ค์ํ ํ์ ์ด ๋ค์ด๊ฐ ์ ์๊ณ , **tuple** ์ญ์ ๋ฉค๋ฒ๊ฐ ๋ ์ ์๋ค.
:named type, compound type, function type
-
๊ฐ ๋ฉค๋ฒ๋ค์ ์ ๊ทผํ๋ ค๋ฉด
.Index
๋ฅผ ์ด์ฉํ๋ค.
-
๊ฐ ๋ฉค๋ฒ๋ค์ ๋ํด์๋ ์ด๋ฆ์ ์ค ์ ์๋ค.
โ
**.element's name
** ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.let someTuple = (22, true, "์คํธ๋ง") someTuple.0 //22 someTuple.1 //true someTuple.2 //"์คํธ๋ง" let otherTuple = (22, (true, "์คํธ๋ง")) otherTuple.1 //(.0 true, .1 "์คํธ๋ง") otherTuple.1.1 //"์คํธ๋ง" func calculateAdd() {} func changedMenu() {} let functionInTuple = (calculateAdd(), changedMenu()) var userData = (height: 170, weight: 65) userData.height //170 userData.weight //65 userData.height = 180 userData.weight = 60 userData //(height 180, weight 60)
-
Tuple์ ํจ์์ return๊ฐ์ด ๋ ์ ์๋ค.
(์ผ๋ฐ์ ์ผ๋ก ์ด๋ ๊ฒ, ํจ์๋ก ๋ถํฐ ๋ค์ํ ๊ฐ์ ๋ฐํํ ๋ ์ฌ์ฉ๋๋ค)
func userProfile() -> (name: String, hegiht: Int, weight: Int) { return ("yooga", 170, 65) } userProfile() //(name "yooga", hegiht 170, weight 65)
-
tuple์ ์์ดํ ์ ์ถ๊ฐํ๊ฑฐ๋ ์ง์ธ ์ ์๋ค.
-
ํ ๋ฒ ์ ์ธ๋ tuple ๋ฉค๋ฒ์
**ํ์ **
์ ๋ฐ๊ฟ ์ ์๋ค.var userData = (height: 170, weight: 65) userData = (155, 50) userData = ("yooga", 50) // ์๋๋ค!
-
๐์ถ์ฒ
-
typealias
: ํ์ ์ ๋ถ๋ฅผ ๋์ฒด์ด๋ฅผ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ.
typealias UserProfile = (name: String, (height: Int, weight: Int))
var userProfile: UserProfile = ("Joe", (170, 60))
typealias UserProfile = (name: String, (height: Int, weight: Int))
var userProfile: UserProfile = ("Aiki", (170, 65))
// tuple๋ค์ ๊ฐ์ง ๋ฐฐ์ด ๋ง๋ค์ด ์ฃผ๊ธฐ
var userProfiles: [UserProfile] = [("Joe", (170, 60)), ("Maz", (160, 50))]
// ๊ฐ์ ์ ๊ทผํ๊ธฐ
userProfiles[0] // (name "Joe", (height 170, weight 60))
userProfiles[0].0 // "Joe"
- ๐์ถ์ฒ
func split(name: String) -> (firstName: String, lastName: String) {
let split = name.components(separatedBy: " ")
return (split[0], split[1])
}
let parts = split(name: "Jorja Smith")
parts.0
parts.1
parts.firstName
parts.lastName
print("์ฑ: \(parts.lastName), ์ด๋ฆ: \(parts.firstName)")
// ์ฑ: Smith, ์ด๋ฆ: Jorja
๐ ์ฐธ๊ณ