看 Android RecyclerView 官方文档时
https://developer.android.com/guide/topics/ui/layout/recyclerview
看到这样一段示例代码。里面有 apply 关键字,第一次见。
recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view).apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = viewAdapter
}
猜测, apply 作用域内的代码,自动加上了当前对象的前缀。即,上面代码中,大括号内的每行代码都省略了 recyclerView 对象。
apply 的优点
- 批量为对象属性赋值时,省去了重复写对象名
- 使用大括号作用域,代码结构更清晰,便于阅读
测试一下
>>> data class City(val name: String) { lateinit var province: String }
>>> val yantai = City("烟台")
>>> yantai.province = "山东"
>>> yantai
res6: Line_3.City = City(name=烟台)
>>> yantai.province
res7: kotlin.String = 山东
>>> val weihai = City("威海").apply { province = "山东" }
>>> weihai
res9: Line_3.City = City(name=威海)
>>> weihai.province
res10: kotlin.String = 山东
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式