【问题标题】:scala "print(_)" outputs nothing, why?scala "print(_)" 什么也没输出,为什么?
【发布时间】:2018-11-07 09:13:39
【问题描述】:

我有这个coden-p:

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

打印出来

3str
===

===

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

【问题讨论】:

  • 使用 for (_
  • 或者,使用O.foreach(print)(或O.foreach(print(_))O.foreach(x =&gt; print(x))

标签: string scala printing format


【解决方案1】:

for (_ &lt;- O) 翻译:从O 中提取每个元素,但不要将它们分配给任何东西。把这些值扔掉就行了。

print(_) 翻译:对于来自O 的每个未使用的元素,使用eta expansionprint() 方法转换为执行相同操作的适当函数。然后扔掉。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多