以下のコードを実行すると、apply メソッドが呼び出されません。
object Tester2 {
def apply(){
println("apply")
}
def main(args: Array[String]) {
Tester2
}
}
しかし、適用メソッドのTester2()代わりにメインメソッドで使用Testerすると、呼び出されます
apply メソッドを呼び出すために () が必要なのはなぜですか?
以下のコードを実行すると、apply メソッドが呼び出されません。
object Tester2 {
def apply(){
println("apply")
}
def main(args: Array[String]) {
Tester2
}
}
しかし、適用メソッドのTester2()代わりにメインメソッドで使用Testerすると、呼び出されます
apply メソッドを呼び出すために () が必要なのはなぜですか?
Tester2オブジェクト名、値です。式には単一の値のみを含めることができます。またはに置き換えることができTester2ます。2"str"
Tester2結果タイプ の式Tester2.typeです。同様2に、結果の型が の式Intです。
メソッドを呼び出すapplyには、次のように括弧を追加する必要があります。
Tester2()
apply括弧なしでメソッドを明示的に呼び出すことができます:
Tester2.apply
を呼び出すとTester2、Tester2 オブジェクトが取得されます。を呼び出すとTester2()、Tester2 オブジェクトの apply メソッドが呼び出されます。Scala では、構文 sugar as を使用するときに、新しいオブジェクトを作成するか、apply() を呼び出すかのあいまいさを解消するために、'()' が必要Tester2()です。