Каково соглашение об именах констант Scala? Краткий поиск по StackOverflow предлагает верхний регистр CamelCase (первая строка ниже), но я хотел дважды проверить.
val ThisIsAConstant = 1.23
val THIS_IS_ANOTHER_CONSTANT = 1.55
val thisIsAThirdConstant = 1.94
Какой стиль Scala рекомендуется использовать?
scala
naming-conventions
constants
Grautur
источник
источник
Pi
).Ответы:
Официально рекомендуемый стиль (и я имею в виду официально) - это первый стиль, верблюжий регистр с первой буквой - это верхний регистр. Это ясно изложено Одерским при программировании на Scala.
Этому стилю также следует стандартная библиотека, и он имеет некоторую поддержку в семантике языка: идентификаторы, начинающиеся с верхнего регистра, обрабатываются как константы при сопоставлении с образцом.
(Раздел 6.10, с. 107 второго издания)
источник
(Это дополнительный комментарий к ответу Даниэля, но я публикую его как ответ в целях выделения и форматирования синтаксиса.)
Точка зрения Дэниела о важности стиля использования начальной заглавной буквы в семантике языка более тонкая и важная, чем я изначально считал, когда изучал Scala.
Рассмотрим следующий код:
Я наивно ожидал, что это коснется всех случаев в матче. Вместо этого он печатает:
Что происходит, так это то, что
case Some(lowerConst)
тень затеняет vallowerConst
и создает локальную переменную с тем же именем, которая будет заполнена каждый раз, когдаSome
вычисляется содержащая строка.По общему признанию, есть способы обойти это, но самый простой - следовать руководству по стилю для постоянного именования.
Если вы не можете следовать соглашению об именах, то, как указывает @reggoodwin в комментариях ниже, вы можете поместить имя переменной в галочки, например
источник
val UpperConst = "UPPER_CONST"
хорошо или должно бытьval UpperConst = "UpperConst"
источник
UpperConst = "UPPER_CONST"
как часть java-style хорошо или должно бытьval UpperConst = "UpperConst"