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 это способ сделать это. Затем компилятор сделает это постоянной времени компиляции, если сможет.

Прочитайте комментарий Даниэля ниже, чтобы узнать, что означает "если это возможно".

Другие вопросы по тегам