Java 允许标识符以 $ 开头或包含 $(美元符号)。例如 int a$b;
但是为什么在标识符中不允许使用 # 呢?具体原因是什么?# 是 Java 中的运算符还是什么?例如 int a#b;
Java 允许标识符以 $ 开头或包含 $(美元符号)。例如 int a$b;
但是为什么在标识符中不允许使用 # 呢?具体原因是什么?# 是 Java 中的运算符还是什么?例如 int a#b;
我想说它是可读性和语言历史渊源的结合。请记住,Java 语法旨在使 C 和 C++ 程序员易于使用。(正如@dan04 指出的那样,该#
字符在 C 和 C++ 的大多数方言中都很重要。)
顺便说一句,虽然$
Java 标识符在技术上是合法的,但它保留给编译器、代码生成器和其他东西使用。如果您$
在源代码中使用 in 标识符,您可能会遇到与(例如)javac
编译器生成的合成标识符发生冲突的麻烦。
我怀疑是否有一个特定的原因不允许#
在标识符中使用标点符号(可能看起来像运算符)。为了处理 WORD_SEPARATION 和 Inner$Classes,做了一些特殊的例外。
在 Java 语法所基于的 C 和 C++ 中,#
用于预处理器指令。
变量可以包含字母、数字、下划线和美元符号 - 不包括 #、@、~、`
我想这是为了可读性 -int s#@t;
看起来很奇怪。