Значение знака _2 на языке скала - PullRequest
14 голосов
/ 19 июня 2011

Что означает _2 в следующем коде? Где я могу найти официальную документацию для этого?

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

Ответы [ 4 ]

22 голосов
/ 19 июня 2011

._2 выбирает второй элемент в кортеже, например,

val t = (1,2)
t._2

, поэтому @errors в вашем образце является списком кортежей.Вы можете найти документацию здесь для Tuple2, и есть классы Tuple3, Tuple4 и т. Д. Для кортежей размера 3, 4 и т. Д. В документации пакета scala показаны доступные типы Tuple, которые идутдо размера 22.

4 голосов
/ 19 июня 2011

В этом случае я считаю, что _2 - это просто имя поля, представляющее 2-е поле Tuple2 объекта.

Однако, подчеркивание иногда немного более волшебно. Он используется как подстановочный знак в операторах импорта, как не присваивающий заполнитель в присваиваниях, которым нужно значение для синтаксиса, но на самом деле не должно их использовать, и как переменная, которая должна присутствовать, но значение которой не имеет значения при сопоставлении с образцом.

1 голос
/ 20 июня 2011

Кажется, что head возвращает Tuple2

0 голосов
/ 19 июня 2011

Это для сопоставления с образцом, вы можете найти документацию об этом здесь

edit: я считаю, что его основная цель - сопоставить что-либо, например, если вы выполните "import http._"он импортирует все из этой библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...