私は Scala を学んでいます。これまでのところとてもうまくいっていますが、悲しいことに、私が完全に理解していない特定の動作を見つけました。このクラスをコーディングしたときに問題が発生しました。
class Point(iDim:Int,data:Array[Double],f: Array[Double] => Double) {
...
def this(idim: Int, obj :ObjectThatGenerate_ArrayofDouble, f: Array[Double] => Double){
this(idim,obj.generateArray(idim),f)
}
}
したがって、メインコードでこれらのコンストラクターを使用するときは、これを行う必要があります
var p:Point = new Point (idim,obj,f _)
また
var p:Point = new Point (idim,dataArray,f _)
しかし、補助コンストラクターを削除すると、次のようにオブジェクトを構築するだけで済みます。
var p:Point = new Point (idim, dataArray, f)
scala で補助コンストラクターがある場合、部分的に実装された関数 "f _" を渡す必要があり、補助コンストラクターがない場合、関数を直接 "f" に渡すことができるのはなぜですか? または文字 "_" に別の文字があるこの文脈での意味は?