我開始使用kotlin在Android中開發,並且對lambda表達式有問題。我有一個函數來設置一個聽衆在我看來,這看起來是這樣的:將lambda存儲在kotlin中的一個變量中
fun setListener(listener:() -> Unit) {
}
的問題是,作爲拉姆達傳遞的代碼將無法在setListener功能被執行,將在另一部分執行我的代碼(特別是當一個微調項被選中時),所以我必須將這個lambda「保存」或「保存」到一個變量/屬性中,以便我能夠在需要時執行它。有關如何去做的任何想法?
編輯:
private var listener: (() -> Unit)? = null
fun setListener(listener:() -> Unit) {
this.listener = listener
}
有沒有更好的方式來做到這一點:我已經做實現呢?由於
「獲取器的可見性必須與屬性可見性相同(即,您不能使用'private get'獲取'public set'')。我建議'var listener:() - > Unit = {}'。 – mfulton26