私はScalaを学び始めており、.map
の問題があります。 CanBuildFromを手で定義する必要があると思いますが、どうやってそれを行うのかわかりません。私はいくつかの紹介を見てきましたが、目的を理解しているうちに実装を理解することはできません。ScalaでCanBuildFromを作成する
コードを短縮するために、タイプエイリアスを定義しました。
type Dice = Vector[(Int,Int)]
私はそのベクトルにメソッドを追加する暗黙のクラスを作成しました。私は推測する。だから、私はmap
を使用する場合
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))
}
コンパイラは、私に叫ぶ、私はimplicit object someFunkyName extends CanBuildFrom
を必要とするが、残りは私を超えています。他にも問題があるかもしれません。
使用中括弧 '{}の部分関数を定義するとき'(すなわち 'case'文を囲む)を心配する必要はありません。 – jwvh
OK。それはうまくいくようです。 _それは決して私に起こりませんでした。ありがとうございました。 –
ええ、このような場合、コンパイラエラーはあまり有益ではありません。 – jwvh