デフォルト変数を使用するメソッドを定義しました。 この変数の値の有無にかかわらずメソッドを呼び出すと、すべてが正常に機能します。スカラ関数変数:デフォルト値を使用する(関数定義または変数定義で定義する)
しかし、メソッドを関数変数に割り当てると、パラメータなしで呼び出すことはできません。
def main(args: Array[String]) : Unit = {
doStuff(5)
doStuff()
val f : (Int => Unit) = doStuff
f(5)
f() //compiler error: not enough arguments for method apply: (v1: Int)Unit in trait Function1. Unspecified value parameter v1.
}
def doStuff(x : Int = 5) : Unit = {
println(x)
}
しかし、私はより多くのcoplex例えばこれを必要になります。
この例では、動作を示しています。関数のデフォルト値を使用するために関数変数を取得できますか?doStuff
?関数変数に別の型を使用する必要がありますか?
また、関数変数f
に別のデフォルト変数を定義することはできますか?
は '、それは完全に異なるものである方法です。 'f'は関数です。メソッドと関数の違いの1つは、メソッドがデフォルト値でオプションのパラメータを持つことができ、関数ではできないことです。 –
@JörgWMittagok、それで私が望むものを達成することはできませんか?関数の "デフォルト値"はいくつかのチュートリアルで言及されているので、用語はもっと多くの人々を混乱させると思います。私はそれを受け入れることができるようにあなたのコメントを答えとして使用しますか? –