最近我读到了Java变量名中允许使用符号$,但具有特殊含义.不幸的是,没有提到这个特殊含义是什么.
因此我在这里问:Java中变量名中$的特殊含义是什么?
这是来自的确切报价
Java:问题解决和编程简介
来自Walter Savitch:
Java允许美元符号符号$出现在标识符中,但这些标识符具有特殊含义,因此您不应在标识符中使用$符号.
C++ 03中的标识符是否允许使用美元符号?在C++ 03中不允许使用标识符中的美元符号.GCC将其作为C扩展提供,并在C++ 03模式下正确地提供诊断.但是,在C++ 11中,int $ = 0将在没有警告的情况下编译.
这个答案的原因$可能是允许的,因为实现定义的标识符不需要诊断:
这里的答案是"可能":根据§2.11,标识符可以由数字和标识符 - 非数字组成,从后者之一开始.标识符非数字是通常的
a-z,A-Z并强调,除了因为C++ 11它们包括 通用字符-名称(例如\uBEAF,\UC0FFEE32),和其他执行定义的字符.因此,如果$允许在标识符中使用,则它是实现定义的.VC10及以上版本也支持早期版本.它甚至支持标识符?????.但是:我不会用它们.使标识符尽可能可读和可移植.
$是实现定义的,因此不可移植.
这种语言也存在于C++ 03标准中,因此我认为这不是一个非常令人信服的论点.
§2.10/ 2
此外,一些标识符保留供C++实现和标准库(17.6.4.3.2)使用,否则不得使用; 无需诊断.
标准中的哪些更改允许$用作标识符名称?
private void launchEventPanel(String title) {
EventQueue.invokeLater(new Runnable(title) {
public void run() {
JFrame myFrame = new JFrame();
myFrame.setTitle(this.val$title);
myFrame.setIconImage(CrConference.this.mainCore.myPanel.myIconManager.getPromptIcon(Mart.class.toString()));
myFrame.getContentPane().add(Conference.this.myEventPanel, "Center");
myFrame.pack();
myFrame.setVisible(true);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我得到了一些我想编译和理解的代码.帮助高度赞赏