在Kotlin,我如何定義一個var
有一個懶惰的默認值?Kotlin懶惰默認屬性
例如val
會是這樣的:
val toolbarColor by lazy {color(R.color.colorPrimary)}
我想要做的是,有一些屬性(toolbarColor
)的默認值,我可以改變價值爲別的。可能嗎?
編輯:這是部分技巧。
var toolbarColor = R.color.colorPrimary
get() = color(field)
set(value){
field = value
}
是否有可能通過的方式,則默認值計算懶洋洋地寫
var toolbarColor = color(R.color.colorPrimary)
set(value){
field = value
}
來緩解呢?目前它不會工作,因爲color()
需要一個Context
,它只在稍後進行初始化。
好的,謝謝!這似乎很多代碼這麼簡單的東西。讓我們看看我們是否找不到更好的替代壽,如果沒有,我會接受你的回答。 –
好的!如果你看看懶惰的實現它看起來像這樣... –
也許它應該在stdlib? – voddan