Kotlin 关键字 apply

文章目录

    看 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式