3
我有以下擴展名:斯威夫特曖昧使用SUM()的
protocol Addable {
init()
func + (lhs: Self, rhs: Self) -> Self
}
extension Int: Addable {}
extension Double: Addable {}
extension SequenceType where Generator.Element: Addable {
func sum() -> Generator.Element {
return reduce(Generator.Element()) { $0 + $1 }
}
}
其中我嘗試在單元測試中使用:
func testThatArrayOfDoublesCanCalculateTheSumOfAllElements() {
let numbers = [1.0, 2.0, 3.0]
let myExpectedValue = 1.0 + 2.0 + 3.0
let myActualValue = numbers.sum()
XCTAssertEqual(myExpectedValue, myActualValue)
}
在Xcode中7.3編譯器給我一個模糊使用'sum()'。爲什麼?
側面板說:
什麼是數字? –
假設'數字'是一個'Int'或'Double'的數組,我無法再現這個編譯器錯誤。 – JAL
更新了我的測試用例。 – weenzeel