私はList of Listsを持つ場所で動作する簡単な機能を得ようとしており、データ( - 、+、*、/)に対していくつかの数学演算を行いたいと思います。私はメソッドが次の型(Int、Float、Double)のいずれかを取るようにしたい。Scalaパラメータ化されたメソッドと算術演算
が表示され、次のされdef doSomething[T](data: List[T]){
data reduceLeft(_/_)
}
:ここ
は、私が試したものです/ typeパラメータTのメンバー値ではありません、私はこれが(AnyValのタイプのために働くことを得るにはどうすればよいDouble、Int、Float)?
def dot[T](l: List[List[T]])(implicit num: Numeric[T]) =
{
for (row <- data)
yield for(col <- l)
yield row zip col map {a => num.times(a._1 , a._2)} reduceLeft (_+_)
とエラーが出る::私は、次のコードでの提案を実装しようとした
更新型の不一致が。見つかった:a._1.type(基礎タイプT)T
これを回避する方法はありますか?部門については
あなたの最初の 'for'で' data'は何ですか? – fehu
申し訳ありませんデータはリスト[リスト[T]]です。 –
私はこれを行う方法のひとつがパラメータ化されたクラスに含まれていることを理解しました。しかし、私はまだ上記がうまくいかないのだろうかと疑問に思っています。特に、このメソッドを関数オブジェクトとして使用したい場合は、 –