【发布时间】:2014-06-04 18:42:40
【问题描述】:
我有一个在 Scala 中使用 foldLeft 的方法。
def bitSetToByte(b:collection.BitSet, sh:Int=0) =
((0 /: b) {(acc, input) => acc + (1 << (input - sh))}).toByte
该方法有两个用于匿名函数的参数,因此我通过删除形式参数将其替换为 _。
def bitSetToByte(b:collection.BitSet, sh:Int=0) = ((0 /: b) {(_ + (1 << (_ - sh))}).toByte
问题是我有类型不匹配的错误消息。
可能出了什么问题?
【问题讨论】:
-
作为一个风格问题,为什么你更喜欢
/:而不是fold...? -
@Kevin Meredith:对我来说,它在视觉上更有吸引力,它让我想起了倒在左侧的多米诺骨牌:(START_VALUE) -> /:::::