クラスについては、タイプを参照するのにval
を使用できないことは明らかです。例えばオブジェクトのタイプアリアスとvalの違い
、
class LongName {
...
}
typealias A = LongName // OK
val B = LongName // compile error
val C = LongName() // compiles, but it refers to an instance, not the class itself
しかし、(シングルトン)オブジェクトの、両方がコンパイル。さらに、その両方のメンバーに使用することができます。
object LongName {
val a = "123"
}
typealias A = LongName
val B = LongName
...
// In a function,
println(A.a) // compiles
println(B.a) // compiles
これらの違いは何ですか?
val C = LongName :: class // LongNameのクラスへの参照 –