为什么Kotlin中有这样的emptyList构造函数?
它是一个不可变的List,因此无法添加或删除其元素,而且它是空的!
那么,这个emptyList的功能是什么?

最佳答案

emptyList 不是构造函数,而是返回和不变的空列表实现的函数。

存在此功能的主要原因是保存分配。由于emptyList每次调用时都会返回相同的单例实例,因此可以以无分配方式使用它。请注意,无论元素类型如何,都将返回完全相同的对象,即emptyList<String>() === emptyList<Int>()true

恕我直言,emptyList在用作(例如)时也比listOf读得更好。默认参数值:

data class Person(val friends:List<Person> = emptyList())

10-04 23:00