【发布时间】:2021-08-02 20:21:15
【问题描述】:
我在使用委托属性时难以理解属性的类型。例如,从这个 Jetpack Compose documentation 中,它说两者都是一样的。
1. val name: String by helloViewModel.name.observeAsState("")
2. val nameState: State<String> = helloViewModel.name.observeAsState("")
我浏览了 Kotlin Delegated 属性文档 here。对于第一个示例,根据文档val name:String,当我们尝试读取此name 属性时,它将在委托实例上调用getValue() 函数,其返回类型将是String,而不是State<String>。但是怎么又返回了State<String>,这部分我没完全搞定。
你能指出我缺少什么来理解这个逻辑,或者任何指向文档/博客文章的链接都会很棒。谢谢
【问题讨论】:
标签: android kotlin android-jetpack-compose delegated-properties