Koichi Adachi

smart phone app development tips

Swift Tuple

Swift複数の値を持った戻り値を扱える。

class ExamTuple{
    class func execute()->(){
        
        var ret  = self.exam()
        println(ret.value1 + ret.value2)
        println("\(ret.value1 + ret.value2)")
        println(self.exam().0 + self.exam().1 )
    }
    class func exam()->(value1 : String, value2 : String, value3 : Int){
        return ("一個目", "2個目", 1)
    }
}

関数定義で戻り値それぞれに名前を付けることも出来るし

class ExamTuple{
    class func execute()->(){
        
        var ret  = self.exam() as (name : String, name2 : String, value : Int)
        println(ret.name + ret.name2)
        println("\(ret.name + ret.name2)")
        println(self.exam().0 + self.exam().1 )
    }
    class func exam()->(String, String, Int){
        return ("一個目", "2個目", 1)
    }
}

名前が無ければ、利用側で付けることも出来る

class ExamTuple{
    class func execute()->(){
        
        var ret  = self.exam() as (name : String, name2 : String, value : Int)
        println(ret.name + ret.value2)  //value2でコンパイルエラー
        println("\(ret.name + ret.name2)")
        println(self.exam().0 + self.exam().1 )
    }
    class func exam()->(value1 : String, value2 : String, value3 : Int){
        return ("一個目", "2個目", 1)
    }
}

利用側で上書きした場合は、関数定義で付けた名称は使えない

詳解 Objective-C 2.0 第3版

詳解 Objective-C 2.0 第3版

Remove all ads