Scala: компиляция постоянных времени
Как вы объявляете константы времени компиляции в Scala? В C#, если вы объявите
const int myConst = 5 * 5;
myConst встраивается как литерал 25.
final val myConst = 5 * 5
эквивалентно или есть какой-то другой механизм / синтаксис?
2 ответа
Да, final val
правильный синтаксис с предостережениями Даниила. Тем не менее, в правильном стиле Scala ваши константы должны быть верблюжьими с заглавными буквами.
Начиная с заглавной буквы, важно, если вы хотите использовать свои константы в сопоставлении с образцом. Первая буква - это то, как компилятор Scala различает постоянные и переменные шаблоны. См. Раздел 15.2 " Программирование в Scala".
Если val
или одноэлементный объект не начинается с заглавной буквы, чтобы использовать его в качестве шаблона соответствия, вы должны заключить его в обратные символы (``
)
x match {
case Something => // tries to match against a value named Something
case `other` => // tries to match against a value named other
case other => // binds match value to a variable named other
}
final val
это способ сделать это. Затем компилятор сделает это постоянной времени компиляции, если сможет.
Прочитайте комментарий Даниэля ниже, чтобы узнать, что означает "если это возможно".