関数を取り込むクラスを作成しようとしていますが、これはオプションにしたいので、呼び出し元がそれを省略した場合は、デフォルトの関数に置き換えたいと思います。
現在、私は次のものを持っています:
class MenuItem(val text: String, val onClick: (Vector2f) => Unit) extends Renderable {
def this(text: String) = this(text, { position => () })
private def default(position: Vector2f) = {
println(text + " was clicked, but is still using the default event.")
}
}
{ position => () })
これは正常に機能しますが、コンストラクターのをに置き換えたいのですが、default
これを行うと、「not found:valuedefault」というエラーが発生します。
プライベート修飾子なしでデフォルトを宣言しようとしましたが、これは役に立ちませんでした。
私が思いついた最善の解決策は、次のように宣言することでした。
def this(text: String) = this(text, position => println(text + " was clicked, but is still using the default event."))
デフォルトのメソッドを定義したままにしてその名前を使用する方法はありますか、それともメソッドをインラインで実装することに固執する必要がありますか?