私はクラスのオブジェクトを作成し、smth
フィールドを呼び出すと、それはとにかくget()
プロパティを呼び出します getterとsetterを持つフィールドを初期化していますか?
class SomeClass {
var smth: String = "Initial value"
get() = "Here it is"
set(value) {
field = "it is $value"
}
}
Kotlin
に例のフィールドを持つクラスを作成しました。 val myValue = SomeClass().smth// myValue = "Here it is"
ですから、なぜゲッターを持つフィールドを初期化する必要がありますか?
var smth: String // Why this gives error?
get() = "Here it is"
set(value) {
field = "it is $value"
}
これは常にget()
プロパティから値を返しますか?
これは、初期化された値なしで 'get()= ...'を使用した場合、Kotlinはバッキングフィールドを生成しないためです。例えば:val smth:String get()= "ここでは" –