我有以下代码片段:
val O = Array(3, "str")
for (o <- O) print(o)
println("\n===")
for (_ <- O) print(_)
println("\n===")
它打印
3str
===
===
为什么第二个for + print(_)不打印任何内容?有什么解释吗?
答案 0 :(得分:4)
for (_ <- O)
翻译:从O
中提取每个元素,但不要将它们分配给任何内容。丢掉那些值。
print(_)
翻译:对于O
中每个未使用的元素,请使用eta expansion将print()
方法转换为执行以下操作的适当函数:一样。然后扔掉它。