类型'Double'不符合协议'Sequence Type'

时间:2015-12-01 06:59:26

标签: xcode swift compiler-errors double syntax-error

这是我的代码,我不知道为什么它不起作用。标题是错误所说的。我正在使用Xcode中的Swift,代码应该创建一个函数,其中包含的参数数量与我告诉它有/无限制。

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

    for balance in balances {
        result += balance
    }
}

1 个答案:

答案 0 :(得分: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只是 双数,不是数组或序列。