为什么Scala地图在迭代foreach时打印一个额外的价值



在像这样的地图上迭代时:

val powers = Map("Spark man" -> "Electricity", "Bubble man" -> "Fires Bubbles", "Guts man" -> "No idea")
println(powers.size)
println(powers.foreach(man => println(man._1 + " -> " + man._2)))

为什么它在印刷时似乎会产生第四件:

3
Spark man -> Electricity
Bubble man -> Fires Bubbles
Guts man -> No idea
()

最后一行的牙套是使我感到困惑的零件。

您可能会告诉我我对语言很陌生,所以这可能很简单,但是我似乎找不到与此有关的东西。

您在最后一行 2 println 's

println(powers.foreach(man => println(man._1 + " -> " + man._2)))

内部println正在打印3人行,外部线正在打印()

powers.foreach(man => println(man._1 + " -> " + man._2)返回类型Unit的值 - 此值显示为()

您正在打印此值以及地图中的每个对,因此您的代码实际上与

相同
val u: Unit = powers.foreach(man => println(man._1 + " -> " + man._2)
println(u)

最新更新