2015-12-01 62 views
0

這是我的代碼,我不知道爲什麼它不起作用。標題就是錯誤所說的。我正在使用Xcode中的Swift,並且代碼應該創建一個具有儘可能多的參數的函數,因爲我告訴它具有/無限制。類型'雙'不符合協議'序列類型'

func addMyAccountBalances(balances : Double) -> Double { 
    var result : Double = 0 

    for balance in balances { 
     result += balance 
    } 
} 

回答

3

的代碼應該是因爲我告訴它

你可能想要的是採取可變數量的參數一個函數來創建與許多參數的函數, 這是用...表示如下類型:

func addMyAccountBalances(balances : Double ...) -> Double { 
    var result : Double = 0 
    for balance in balances { 
     result += balance 
    } 
    return result 
} 

print(addMyAccountBalances(1.0, 2.0, 3.0)) 
print(addMyAccountBalances(4.5, 5.6)) 

裏面有趣數組balances的數組類型爲[Double],因此 可以遍歷其元素。

注意,這可以更緊湊與reduce()這樣寫:

func addMyAccountBalances(balances : Double ...) -> Double { 
    let result = balances.reduce(0.0, combine: +) 
    return result 
} 

您的代碼不編譯,因爲balances : Double只是 雙號,不是數組或序列。

相關問題