为什么Kotlin的Map.foreach比Java的好?

nukf8bse  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(153)

一个非常简单的例子:

val map = mapOf("one" to 1, "two" to 2)
map.forEach{k, v -> if (k == "one") println(v)}  //Java API
map.forEach{(k, v) -> if (k == "two") println(v)}  //Kotlin extension

我对IDE警告Java Map.forEach method call should be replaced with Kotlin's forEach的第二行感到困惑。我不明白为什么要替换它。它们看起来工作方式相同,唯一的区别是java方法需要少输入两个符号。有什么想法吗?

iaqfqrcu

iaqfqrcu1#

如果没有别的,它是一个内联函数,可以更有效地执行诸如在其他地方改变状态或平滑地合并suspend函数之类的操作。
在任何地方使用相同的forEach比在任何给定点跟踪您正在使用的forEach要简单得多。

r7knjye2

r7knjye22#

除其他答案外:Java方法只能在Kotlin/JVM中使用,而Kotlin函数是跨平台的,也可以在Kotlin/Native和Kotlin/JS中使用。 因此,如果没有充分的理由使用Java版本,则默认使用兼容性更强的Kotlin版本是有意义的。

相关问题