[Swift]タプルの練習
2015/05/09
swift
タプル
Swiftです。気になるのはタプル!
// (1) タプルから値取得
let tup = (1, "two")
let atup = (a:1, b:"two")
println("\(tup.0), \(tup.1)") // 1, two
println("\(atup.a), \(atup.b)") // 1, two
// (2) タプルを引数として渡す
func a(a:Int, b:String) {
println("a:\(a), b:\(b)")
}
a(tup) // a:1, b:two
// (3) タプルを引数として渡すさいに、名前付きのタプルだとコンパイルできない場合があるケース
// 以下はコンパイルできない
// error: missing argument for parameter #2 in call
// let atup = (a:1, b:"two")
// a(atup)
//
// (4) (3)は違いうまくいく場合、関数の引数に名前がついてるから?
func a2(#a:Int, #b:String) {
println("a:\(a), b:\(b)")
}
// a2(tup) error: missing argument for parameter 'b' in call
a2(atup) // OK
// (5) ジェネリックで型
func a3<T1, T2>(#a:T1, #b:T2) {
println("a:\(a), b:\(b)")
}
// a2(tup) // error: missing argument for parameter 'b' in call
a2(atup) // OK
: