Java позволяет идентификатору запускаться с или содержать $ (знак доллара). например, международный a$b;
Но почему # не позволяется в идентификаторе? Какова определенная причина? Действительно ли # является оператором или чем-то в Java? например, интервал a#b;
Я бы сказал, что это сочетание удобочитаемости и исторических предшественников языка. Помните, что синтаксис Java был разработан, чтобы быть понятным программистам на C и C ++. (И, как указывает @ dan04, символ #
важен для большинства диалектов C и C ++.)
Между прочим, хотя $
является технически законным в идентификаторах Java, он является зарезервировано для использования компиляторами, генераторами кода и другими вещами. Если вы используете $
в идентификаторах в исходном коде, вы рискуете столкнуться с конфликтами с синтетическими идентификаторами, созданными (например) компилятором javac
.
Переменные могут содержать буквы, цифры, подчеркивания и знаки доллара - за исключением #, @, ~, `
Я думаю, это для удобства чтения - int s # @ t;
кажется странным.
Я сомневаюсь, что для запрета #
существовала конкретная причина, равно как и общее неприятие знаков препинания в идентификаторах (которые могли выглядеть как операторы ). Были сделаны специальные исключения для работы с классами WORD_SEPARATION и Inner $.
В C и C ++, на которых основан синтаксис Java, #
используется для директив препроцессора .