You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中`= remember`与`by remember`声明变量的区别是什么?

两种remember变量声明方式的区别解答

核心结论

两种写法不存在任何功能上的差异,仅为Kotlin语法特性带来的使用便捷性区别,底层执行逻辑完全一致。

具体差异说明

  • 第一种=赋值写法
    你拿到的aa是完整的MutableState<Boolean>类型对象,后续读写值必须手动操作其value属性:
    // 读取值
    val currentValue = aa.value
    // 修改值
    aa.value = false
    
  • 第二种by委托写法
    用到了Kotlin的属性委托语法糖,编译器会自动帮你隐含value属性的读写操作,你可以直接把aa当作普通Boolean类型变量使用:
    // 读取值
    val currentValue = aa
    // 修改值
    aa = false
    

补充说明

两种写法不会产生性能差异,反编译字节码后可以看到执行逻辑完全相同。实际开发中更推荐使用by委托的写法,代码更简洁,也能避免漏写.value导致的异常问题。

内容的提问来源于stack exchange,提问作者Suee97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:09:01