在 Scala 中创建 CanBuildFrom
Creating a CanBuildFrom in Scala
我开始学习 Scala,但遇到 .map
的问题。我想我需要手动定义一个 CanBuildFrom,但我不知道该怎么做。我看过一些介绍,但虽然我明白了目的,但我无法弄清楚实现方式。
所以为了缩短我的代码,我定义了一个类型别名。
type Dice = Vector[(Int,Int)]
我创建了一个隐式 class 来向该 Vector 添加方法。
implicit class DiceMethods(dice: Dice){
private def d(x : Int) = // some method
def roll : Dice = dice map( case (x: Int, y: Int) => (0, d(x) + y) )
}
当我使用 map
时,编译器对我尖叫。所以我想,我需要一个 implicit object someFunkyName extends CanBuildFrom
,但其余的超出了我的范围。或者可能还有其他问题。
你不用担心CanBuildFrom
使用map { case .... }
代替map ( case ...)
implicit class DiceMethods(dice: Dice){
private def d(x : Int) = // some method
def roll : Dice = dice map { case (x: Int, y: Int) => (0, d(x) + y) }
}
我开始学习 Scala,但遇到 .map
的问题。我想我需要手动定义一个 CanBuildFrom,但我不知道该怎么做。我看过一些介绍,但虽然我明白了目的,但我无法弄清楚实现方式。
所以为了缩短我的代码,我定义了一个类型别名。
type Dice = Vector[(Int,Int)]
我创建了一个隐式 class 来向该 Vector 添加方法。
implicit class DiceMethods(dice: Dice){
private def d(x : Int) = // some method
def roll : Dice = dice map( case (x: Int, y: Int) => (0, d(x) + y) )
}
当我使用 map
时,编译器对我尖叫。所以我想,我需要一个 implicit object someFunkyName extends CanBuildFrom
,但其余的超出了我的范围。或者可能还有其他问题。
你不用担心CanBuildFrom
使用map { case .... }
代替map ( case ...)
implicit class DiceMethods(dice: Dice){
private def d(x : Int) = // some method
def roll : Dice = dice map { case (x: Int, y: Int) => (0, d(x) + y) }
}