java - 为什么 '#' 、 '.' 、 ':' 不能在标识符中使用?

标签 java scjp

我明白为什么标识符不能以数字或“-”开头。

为什么不能使用“#”、“.” (点)和“:”(冒号)可以用作标识符的一部分吗?

最佳答案

“不应该”并不是准确的定义。最好使用“不得”或“不能”。

一旦我们改变了问题,我们就可以回答它。原因是java编程语言是这样定义的。所以,你可以问“为什么java的创建者要定义这样的规则?”

可以有多个答案。最相关的之一(恕我直言)是所有编程语言(至少是我所知道的那些)对于标识符中可以使用哪些字符都有或多或少相同的定义:

字母、数字或下划线,以字母或下划线开头。

顺便说一下,java 扩展了此规则,因为它允许使用包括国家字母表在内的任何字母,而通常其他(至少较旧的)编程语言仅将此规则限制为拉丁字母。

在您编写的所有字符中,我认为理论上只有 # 可以包含在标识符允许的字符列表中,但他们决定不这样做,可能是考虑到 java 的 future 版本 也许这个字符将成为语言的一部分。

我认为在标识符中使用 ,; 显然是不可能的。考虑一下 for 运算符。

关于java - 为什么 '#' 、 '.' 、 ':' 不能在标识符中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28134962/

相关文章:

java - SAKAI 无法部署到 TOMCAT

java - 为 servlet 支持的 API 生成文档的好方法是什么?

java - 带接口(interface)的 AsyncTask onPostExecute

java - SCJP 有什么好东西吗?

java - 在接口(interface) : what is the outerclass? 中声明的匿名内部类

java - 将 Java Stream 过滤为 1 个且仅 1 个元素

java - 使用 selenium java 单击 Facebook 'share' 按钮

java - 方法局部内部类不能使用方法内声明的变量

java - Queue 接口(interface)中的 peek() 方法

java - 从其封闭类的静态方法中实例化一个内部类