Одна вещь, которую я нахожу довольно запутанной, - это знать, какие символы и комбинации я могу использовать в именах методов и переменных. Например,
val #^ = 1 // legal
val # = 1 // illegal
val + = 1 // legal
val &+ = 1 // legal
val &2 = 1 // illegal
val £2 = 1 // legal
val ¬ = 1 // legal
Как я понимаю, существует различие между буквенно-цифровыми идентификаторами и идентификаторами операторов. Вы можете смешивать совпадение одного или другого, но не оба, если они не разделены символом подчеркивания (смешанный идентификатор).
От программирования в разделе Scala раздела 6.10,
Идентификатор оператора состоит из одного или нескольких символов оператора. Операторские символы - это печатные символы ASCII, такие как +,:,?, ~ или #.
Более точно, символ оператора принадлежит к набору Unicode математических символов (Sm) или других символов (So) или 7-битных Символы ASCII, которые не являются буквами, цифрами, круглыми скобками, квадратными скобки, фигурные скобки, одинарная или двойная кавычка или символ подчеркивания, период, запятая, запятая или обратный тик.
Таким образом, мы исключаем использование ()[]{}'"_.;,
и `
Я искал математические символы Unicode на Wikipedia, но те, которые я нашел, не включали +
, :
, ?
и т.д. Есть ли окончательный список где-то из символов оператора?
Также любые идеи, почему математические операторы Unicode (а не символы) не считаются операторами?