Kotlin 中的 mapOf() 与emptyMap()

Pan*_*nch 2 kotlin

刚刚开始在我们的项目中使用 Kotlin。要初始化不可变的映射或列表(可能是 Kotlin 中的任何集合),我可以看到两个选项mapOf()emptyMap()listOf()emptyList()表示列表)。

基本上,mapOf只不过是一个返回 的内联函数emptyMap()

@kotlin.internal.InlineOnly
public inline fun <K, V> mapOf(): Map<K, V> = emptyMap()
Run Code Online (Sandbox Code Playgroud)

哪个比另一个更受欢迎?为什么 Kotlin 公开两者?

小智 7

它是一个专门的重载-mapOf(vararg Pair<K, V>)如果您在没有任何参数的情况下调用该函数,则无需执行大小检查。

至于“什么比另一个更受欢迎”——无论什么使得它所使用的代码更具可读性。在性能方面,没有区别(就像mapOf()内联一样),但为了保持一致性,您可能希望选择一个并坚持使用它。