Точно.Используя обратные пометки, вы можете более или менее присвоить любое имя идентификатору поля.Фактически, вы можете даже сказать
val ` ` = 0
, который определяет переменную с именем
(один символ пробела).
Буквальное определение идентификаторов полезно в двух случаях.Первый случай, когда в Scala уже есть зарезервированное слово с тем же именем, и вам нужно использовать библиотеку Java, которая не заботится об этом (и, конечно, зачем это нужно).
ДругойВариант использования поставляется с case
заявлениями.Соглашение состоит в том, что имена нижнего регистра ссылаются на переменные соответствия, тогда как имена верхнего регистра ссылаются на идентификаторы из внешней области видимости.Итак,
val A = "a"
val b = "b"
"a" match {
case b => println("b")
case A => println("A")
}
печатает "b"
(если бы компилятор был достаточно глуп, чтобы не сказать, что case A
недоступен).Если вы хотите сослаться на первоначально определенный val b
, вам необходимо использовать обратные метки в качестве маркера.
"a" match {
case `b` => println("b")
case A => println("A")
}
Который печатает "A"
.
Добавить В этом недавнем методе с угловыми скобками (<>) есть более продвинутый вариант использования, где обратные метки были необходимы, чтобы компилятор переваривал код для метода метода set (который сам по себе использует некоторую «магию»).'синтаксис).