Scalaコンストラクタのオーバーロード?質問する

Scalaコンストラクタのオーバーロード?質問する

Scala でオーバーロードされたコンストラクターを提供するにはどうすればよいでしょうか?

ベストアンサー1

Scala の補助コンストラクターは、最初のアクションとして、プライマリ コンストラクター (landon9720 の回答のように) を呼び出すか、同じクラスの別の補助コンストラクターを呼び出す必要があることを明示的に言及する価値があります。Java のように、スーパークラスのコンストラクターを明示的または暗黙的に呼び出すことはできません。これにより、プライマリ コンストラクターがクラスへの唯一のエントリ ポイントであることが保証されます。

class Foo(x: Int, y: Int, z: String) {  
  // default y parameter to 0  
  def this(x: Int, z: String) = this(x, 0, z)   
  // default x & y parameters to 0
  // calls previous auxiliary constructor which calls the primary constructor  
  def this(z: String) = this(0, z);   
}

おすすめ記事