Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift sum()的快速模糊用法_Swift - Fatal编程技术网

Swift sum()的快速模糊用法

Swift sum()的快速模糊用法,swift,Swift,我有以下分机: 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 {

我有以下分机:

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
的数组,我无法重现此编译器错误。更新了我的测试用例。sum()的使用在声明扩展的同一模块中正常,但在测试模块中出错。如果我在扩展中添加public关键字,那么在声明扩展的模块中也是一个错误。您的最后一句话表明您的代码中的某个地方对sum()的定义存在冲突。检查编译器输出(在报表导航器中),它应该显示其不明确的原因。