使用委托属性时,我很难理解属性类型。例如,从这个 Jetpack Compose文档中,它说两者都是一样的。
1. val name: String by helloViewModel.name.observeAsState("")
2. val nameState: State<String> = helloViewModel.name.observeAsState("")
我在这里浏览了 Kotlin Delegated 属性文档。对于第一个示例,根据文档,val name:String
当我们尝试读取此name
属性时,它将调用getValue()
委托实例上的函数,其返回类型为String
,而不是State<String>
。但是它怎么会返回State<String
>,这部分我没有完全得到。
你能指出我缺少什么来理解这个逻辑,或者任何指向文档/博客文章的链接都会很棒。谢谢