scala中のclassとobjectの文法糖
653 ワード
まずscalaではclassがクラスであり、objectがオブジェクトであることを知っています.classとobjectが同名であれば、peopleクラスを書くなど、相手を伴生オブジェクトまたは伴生クラスと呼びます.
このコードの中で、私はnew peopleを持っていません.これはなぜですか.これは伴生オブジェクトの利点であるため、newキーワードを必要としない伴生オブジェクトを作成するため、people(2,「tom」)は実際にその中のapplyメソッドを呼び出し、scalaの文法糖であり、このような設計はコードをより簡素化する.
class people(id : Int, name : String){
def say = "hello :"+ name + ",my id is :"+id
}
object people{
def apply(id : Int, name : String) = {
println("is apply")
new people(id, name)
}
}
object test{
def main(args : Array[String]){
val p = people(2, "tom")
p say
}
}
このコードの中で、私はnew peopleを持っていません.これはなぜですか.これは伴生オブジェクトの利点であるため、newキーワードを必要としない伴生オブジェクトを作成するため、people(2,「tom」)は実際にその中のapplyメソッドを呼び出し、scalaの文法糖であり、このような設計はコードをより簡素化する.