天天看點

SWIFT中函數傳回值為Tuple

 在playgroundm内鍵入以下代碼,求一個成績數組内最大分值和最小分值

func maxminScore(scores:Array<Int>) -> (maxScore:Int,minScore:Int)? { //一個可以空的Tuple

    if scores.isEmpty{

        return nil  //判斷是否有值,沒值就傳回一個空值

    }

    var maxScore = scores[0], minScore = scores[0]

    for score in scores[1..<scores.count]{

        maxScore = max(maxScore, score)

        minScore = min(minScore, score)

    return (maxScore: maxScore, minScore: minScore) //傳回結果

}

var scores:[Int]? = [60,80,90,100,30,26,87]

var allScores = scores ?? []

if let result = maxminScore(allScores){

    println("The maximum score is \(result.maxScore)")

    println("The minimum score is \(result.minScore)")

 //使用Tuple.下标通路元素

    println("The maximum score is \(result.0)")

    println("The minimum score is \(result.1)")

 //給傳回的值指派給變量後可以直接使用

if let (a,b) = maxminScore(allScores){

    println("The maximum score is \(a)")

    println("The minimum score is \(b)")