どのように私は機能が特徴であり、従って、定義されたと我々は機能にその形質のオブジェクトを宣言するたびにメソッドが作成されて適用されます知っていることから、機能f(i: Int, j:Int) = i + j
extends Function2 [Int、Int]をスカラで拡張してオブジェクトを定義するためのユースケースは何ですか?
異なるオブジェクトsum
を下回っています。しかし、私は以下のようなオブジェクト定義がどんな特別な目的を果たすことができるのか理解できません。
私が間違っている場合は、私に修正してください。
object sum extends Function2[Int, Int, Int]{
def apply(first: Int, second: Int) = {
first + second
}
}
最初の段落で説明したことを使いたいのであれば、なぜ 'FunctionN'を拡張するのですか? 'apply'で任意のクラスを使わないのはなぜですか? –
'FunctionN'が必要なものに渡したいからです。 'Seq.map'。 AFAIKでは、関数を期待するほとんどのメソッドは 'apply'(Ruby、Python、Javaと違って)の構造型の代わりに' FunctionN'にハードワイヤードされています。 –
しかし、 'Seq.map'は、あなたのカスタム' apply'を期待しません(とにかく必須のものを定義しなければなりません)。 –