【发布时间】:2011-06-19 19:44:41
【问题描述】:
以下代码中的 _2 是什么意思?我在哪里可以找到这方面的官方文档?
..
@if(errors) {
<p class="error">
@errors.head._2
</p>
}
...
【问题讨论】:
标签: scala
以下代码中的 _2 是什么意思?我在哪里可以找到这方面的官方文档?
..
@if(errors) {
<p class="error">
@errors.head._2
</p>
}
...
【问题讨论】:
标签: scala
._2 选择元组中的第二个元素,例如
val t = (1,2)
t._2
所以您的示例中的 @errors 似乎是一个元组列表。 您可以找到 Tuple2 的文档 here,并且有 Tuple3、Tuple4 等用于大小为 3、4 等的元组的类。scala package documentation 显示了最大为 22 的可用元组类型。
【讨论】:
在这种情况下,我认为 _2 只是一个字段名称,代表 Tuple2 对象的第二个字段。
然而,下划线有时更神奇。它在 import 语句中用作通配符,在需要语法值但实际上不应执行任何操作的赋值中用作非分配占位符,并用作应该存在但其值在模式匹配中无关紧要的变量。
【讨论】:
似乎head 返回一个Tuple2
【讨论】:
它用于模式匹配,您可以找到有关它的文档here
edit:我相信它的主要目的是匹配任何东西,例如,如果你执行“import http._”,它将从该库中导入所有东西。
【讨论】: