2014-10-20 7 views
0

Кажется, что в Scala имя переменной может заканчиваться определенным символом, таким как -.Как Scala различает унарные операторы и символы в имени переменной

Как эти символы завершающего символа отличаются от постфиксных унарных операторов во время разбора?

ответ

2

Эти символы должны быть соединены с идентификатором с символом подчеркивания.

Например, a! анализирует как a.!, тогда как a_! анализирует как один идентификатор.

+0

Вы увидите это наиболее заметно с помощью методов «магического» сеттера (например, 'bar_ =', который можно назвать «foo.bar = 42') и унарных префиксных операторов, таких как оператор« не »(' unary_! ', который можно назвать'! foo'). Кроме того, некоторые суб-сообщества Scala предпочитают имена меток стиля Lisp/Ruby вместо Java-стиля для предикатных методов ('odd_?' Вместо 'isOdd'). –