模棱两可的参考

时间:2016-01-03 00:49:54

标签: swift types casting

我有一个简单的点积函数:

func dotProduct(vectorA: [Float], vectorB: [Float]) -> [Float] {
    return map(zip(vectorA, vectorB), *)
}

然而,它引发了以下错误

Ambiguous reference to member '*'

有什么想法吗?似乎vectorA和vectorB的类型都明确定义为[Float]。

1 个答案:

答案 0 :(得分:2)

如果在压缩列表上调用map,则有效:

func dotProduct(vectorA: [Float], vectorB: [Float]) -> [Float] {
    return zip(vectorA, vectorB).map(*)
}
似乎斯威夫特的推断有点缺乏。