Значение знака _2 в scala языке
Что означает _2 в следующем коде? Где я могу найти официальную документацию для этого?
..
@if(errors) {
<p class="error">
@errors.head._2
</p>
}
...
Ответы
Ответ 1
._2
выбирает второй элемент в кортеже, например.
val t = (1,2)
t._2
поэтому @errors в вашем примере представляется списком кортежей.
Вы можете найти документацию здесь для Tuple2, и есть классы Tuple3, Tuple4 и т.д. Для кортежей размером 3, 4 и т.д. scala документация пакетов показывает доступные типы Tuple, размер которых достигает 22.
Ответ 2
В этом случае, я считаю, _2 - это просто имя поля, представляющее второе поле объекта Tuple2
.
Подчеркивание иногда немного более волшебное. Он используется в качестве подстановочного знака в операторах импорта в качестве не назначаемого заполнителя в назначениях, для которых требуется значение для синтаксиса, но на самом деле его не должно делать, и как переменная, которая должна быть там, но значение которой не имеет значения при сопоставлении с образцом.
Ответ 3
Кажется, что head
возвращает Tuple2
Ответ 4
Для сопоставления шаблонов вы можете найти документацию об этом здесь
edit: Я считаю, что его основная цель - сопоставить что угодно, например, если вы импортируете http._, он будет импортировать все из этой библиотеки.