Kotlin 关键字 apply

更新日期: 2020-01-09 阅读次数: 5535 字数: 212 分类: Kotlin

看 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 聊聊, 查看更多联系方式