【发布时间】:2018-03-26 12:40:27
【问题描述】:
注意:我正在使用 scalac。请不要推荐使用 sbt。
我遇到了一个我可以解决的特殊问题,但我想知道为什么它会以这种方式工作,而不是我以前的方式。这是一个代码sn-p:
def multiply[A](r1: Vector[A], r2: Vector[A], multOp: (A,A) => A, sumOp: (A, A) => A) =
r1.zip(r2).map(multOp).reduce(sumOp)
它无法编译,导致如下错误消息:
Error:(73, 20) type mismatch;
found : (A, A) => A
required: ((A, A)) => ?
r1.zip(r2).map(multOp).reduce(sumOp)
将 sn-p 更改为:
def multiply[A](r1: Vector[A], r2: Vector[A], multOp: ((A,A)) => A, sumOp: (A, A) => A) =
r1.zip(r2).map(multOp).reduce(sumOp)
将解决问题。
请注意,sumOp 仅适用于一对大括号。
为什么?
【问题讨论】: