Scala“ print(_)”什么也不输出,为什么?

时间:2018-11-07 09:13:39

标签: string scala printing format

我有以下代码片段:

val O = Array(3, "str")
for (o <- O) print(o)
println("\n===")
for (_ <- O) print(_)
println("\n===")

它打印

3str
===

===

为什么第二个for + print(_)不打印任何内容?有什么解释吗?

1 个答案:

答案 0 :(得分:4)

for (_ <- O) 翻译:从O中提取每个元素,但不要将它们分配给任何内容。丢掉那些值。

print(_) 翻译:对于O中每个未使用的元素,请使用eta expansionprint()方法转换为执行以下操作的适当函数:一样。然后扔掉它。

添加了参考:What are all the uses of an underscore in Scala?