Каковы правила для обозначения методов и переменных в Scala, особенно при смешивании символов и букв с использованием _
? Например, почему _a_
, a_+
, __a
, __a__a__a__+
, ___
являются действительными именами, но _a_+_a
или нет?Правила именования переменных Scala с подчеркиванием
ответ
Это в very first section of the Scala Language Specification:
Есть три способа, чтобы сформировать идентификатор. Во-первых, идентификатор может начинаться с буквы, за которой может следовать произвольная последовательность букв и цифр. За этим могут следовать символы подчеркивания '_' и другая строка, состоящая из букв и цифр или символов оператора.
Это не совсем понятно, но за персонажами оператора не может следовать ничего. Видели здесь (образец в конце идентификатора):
idrest ::= {letter | digit} [‘_’ op]
_a_+_a
и _a_+_
являются незаконными, поскольку они имеют другую букву или знак подчеркивания следующих символов оператора. Тем не менее, они являются законными, если вы окружаете их обратными кавычками.
scala> val `_a_+_` = 1
_a_+_: Int = 1
scala> val `_a_+_a` = 1
_a_+_a: Int = 1
От here:
Есть три способа, чтобы сформировать идентификатор. Во-первых, идентификатор может начать с буквы, за которой может следовать произвольная последовательность из букв и цифр. За этим могут следовать символы подчеркивания '_' и другая строка, состоящая из букв и цифр или символов . Во-вторых, идентификатор может начинаться с символа оператора , за которым следует произвольная последовательность символов оператора. Предыдущие две формы называются равными идентификаторами. Наконец, идентификатор также может быть сформирован произвольной строкой между обратными кавычками (хост-системы могут налагать некоторые ограничения, для которых строки являются легальными для идентификаторов). Затем идентификатор состоит из всех символов, исключая сами обратные кавычки.
Вы также можете увидеть в ссылке грамматику языка.
- 1. Каковы правила именования переменных в обработке?
- 2. Dbset правила именования и правила именования класса
- 3. Правила именования классов Java
- 4. Как создать мою собственную проверку для правила именования переменных?
- 5. Существуют ли какие-либо правила для именования переменных unix/linux?
- 6. Правила именования для ресурсов Android
- 7. Тенденции CSS с классом именования и id с подчеркиванием подчеркивания?
- 8. Пользовательские правила именования в ReSharper
- 9. Добавление собственного правила именования Automapper
- 10. Каковы правила именования самого класса?
- 11. Python - Динамические именования переменных
- 12. Лучшая система именования переменных?
- 13. Поиск списка всех переменных с двойным подчеркиванием?
- 14. Каковы правила управления подчеркиванием для определения анонимной функции?
- 15. оздание именования переменных из массива
- 16. Стандарт именования/форматирования глобальных переменных
- 17. именования переменных из петли JQuery
- 18. Существуют ли правила именования файлов для python?
- 19. Правила определения переменных для переменных
- 20. ReSharper правила именования для XAML пространств имен
- 21. Что все правила именования @Configuration для beans?
- 22. Правила использования именования: Id во множественном числе
- 23. Попытка понять правила именования в службах AngularJS
- 24. Эмпирического правила для именования оболочки классов
- 25. C#: правила именования полей защищенных членов
- 26. Каковы правила для именования тем Кафки (0.9)?
- 27. Личные правила именования для классов C# и VB и символ «_»
- 28. Переменные с подчеркиванием
- 29. Scala - примените правила неприменимости
- 30. Как избежать перезаписи переменных-членов, инициализированных в суперклассе в Scala с подчеркиванием?
Обратите внимание, что '_a_' и все остальное, с возможным частичным исключением' a_ + ', обескуражены. '_' имеет много других значений в Scala; использование его внутри имен переменных также обычно визуально запутывает. Я использую его только в том случае, если переменная никогда не должна быть видна (например, во имя неявного определения, которое никто не должен вызывать напрямую); стилисты обычно говорят, что не используют его вообще, за исключением, возможно, для '_a', как имя частной переменной, соответствующей видимой переменной' a'. (Чтобы продолжить в сторону: я нахожу '_a' визуально запутанным, а затем тоже, поэтому я предпочитаю' myA' вместо.) –