試圖找到一些關于如何在惰性列中選擇多個專案的方向,我在 Owl Jetpack Compose 示例(Onboarding.kt)中找到了以下代碼。
...
val (selected, onSelected) = remember { mutableStateOf(false) }
...
即使我能夠自己使用代碼,我也真的無法解碼這個 val 宣告的語法。我在 kotlinlang.org 網站上找不到任何東西(我發現的最近的主題是關于解構宣告)。有人可以幫助我理解它和/或指向我相關的檔案嗎?
uj5u.com熱心網友回復:
正如您在問題中提到的那樣,這種語法是解構,明確地為
val (selected: Boolean, onSelected: (Boolean) -> Unit) = remember { mutableStateOf(false) }
這需要目標類的 2 個組件。
(val num1:Int, val num2:Int) = Pair(1,2)是一個例子
使用可變狀態
@Stable
interface MutableState<T> : State<T> {
override var value: T
operator fun component1(): T
operator fun component2(): (T) -> Unit
}
您需要添加T型別和一個以 T 作為引數并回傳單位的 lambda。
在SnapshotImplMutableState 的源代碼中,它被用作
override operator fun component2(): (T) -> Unit = { value = it }
因此,您使用此 lambda 設定的任何內容都將分配給 valueT
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/463011.html
