В чем разница между «= запомнить» и «по запоминанию» (Котлин, Jetpack Compose)

#android #kotlin #android-jetpack-compose

Вопрос:

Я думаю, что существуют два варианта использования remember.
первый из них

 @Composable
fun abc() {
    var aa = remember { mutableStateOf(true) }
}
 

и второе

 @Composable
fun abc() {
    var aa by remember { mutableStateOf(true) }
}
 

Существуют ли какие-либо функциональные различия? или просто для удобства?

Ответ №1:

Это просто для удобства, чтобы сократить синтаксис. Используя делегат (по ключевому слову), вы можете пропустить связь со значением, потому что это делается под капотом.

В документации вы можете прочитать

Существует три способа объявить объект MutableState в составном:

val mutableState = запомнить { mutableStateOf(по умолчанию) }
значение var, запомнив { mutableStateOf(по умолчанию) }
значение val (значение, заданное значение) = запомнить { mutableStateOf(по умолчанию) }

Эти объявления эквивалентны и предоставляются в качестве синтаксического сахара для различных применений состояния. Вы должны выбрать тот, который создает самый простой для чтения код в составляемом файле, который вы пишете.

Овации