Kotlin 关键字 apply

更新日期: 2020-01-09 阅读次数: 333 字数: 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 = 山东

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日