【问题标题】:Meaning of _2 sign in scala language_2在scala语言中的含义
【发布时间】:2011-06-19 19:44:41
【问题描述】:

以下代码中的 _2 是什么意思?我在哪里可以找到这方面的官方文档?

.. 
@if(errors) {
    <p class="error">
        @errors.head._2
    </p>
}
...

【问题讨论】:

    标签: scala


    【解决方案1】:

    ._2 选择元组中的第二个元素,例如

    val t = (1,2)
    t._2
    

    所以您的示例中的 @errors 似乎是一个元组列表。 您可以找到 Tuple2 的文档 here,并且有 Tuple3、Tuple4 等用于大小为 3、4 等的元组的类。scala package documentation 显示了最大为 22 的可用元组类型。

    【讨论】:

      【解决方案2】:

      在这种情况下,我认为 _2 只是一个字段名称,代表 Tuple2 对象的第二个字段。

      然而,下划线有时更神奇。它在 import 语句中用作通配符,在需要语法值但实际上不应执行任何操作的赋值中用作非分配占位符,并用作应该存在但其值在模式匹配中无关紧要的变量。

      【讨论】:

        【解决方案3】:

        似乎head 返回一个Tuple2

        【讨论】:

          【解决方案4】:

          它用于模式匹配,您可以找到有关它的文档here

          edit:我相信它的主要目的是匹配任何东西,例如,如果你执行“import http._”,它将从该库中导入所有东西。

          【讨论】:

          • 它用于此目的,但也是变量名中的合法字符,如本例所示。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-29
          • 1970-01-01
          • 2012-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多