为什么Kotlin中有这样的emptyList构造函数?
它是一个不可变的List,因此无法添加或删除其元素,而且它是空的!
那么,这个emptyList的功能是什么?
最佳答案
emptyList
不是构造函数,而是返回和不变的空列表实现的函数。
存在此功能的主要原因是保存分配。由于emptyList
每次调用时都会返回相同的单例实例,因此可以以无分配方式使用它。请注意,无论元素类型如何,都将返回完全相同的对象,即emptyList<String>() === emptyList<Int>()
是true
。
恕我直言,emptyList
在用作(例如)时也比listOf
读得更好。默认参数值:
data class Person(val friends:List<Person> = emptyList())