SO上的許多地方導致Identifiers上的JLS部分,但是我在那裏寫了一些問題。來自java語言規範的java有效標識
通過 「Java字母」 包括大寫和小寫ASCII拉丁字母AZ (\ u0041- \ u005a)和AZ(\ u0061- \ u007a),並且,由於歷史 原因,ASCII下劃線(_ ,或者\ u005f)和美元符號($,或者 \ u0024)。 $字符只能用於機械生成的 源代碼,或者很少用於訪問傳統 系統上的預先存在的名稱。 「Java數字」包括ASCII數字0-9 (\ u0030- \ u0039)。
但它接着說:
字母和數字可以從整個Unicode字符集, 它支持大多數目前編寫腳本在世界上, 包括大集繪製對於中文,日文和韓文。這個 允許程序員在他們的程序中使用以其母語編寫的 。
我不明白這些都可能是真實的。第一部分似乎確切地規定了哪些字符是允許的,而第二部分似乎表示允許更靈活。
我同意使用「包含」而不是「包括但不限於」表明它並不完全相反。但它也首先特指「Java字母」/「Java數字」,然後將其放寬爲「字母」/「數字」。我的主要觀點是缺乏清晰度,我想確認我的意思。
你在哪裏看到矛盾?支持拉丁字母,一些標誌,數字,現在還有一些unicode字符。 – Tom
好的。當然,這沒有錯,但我仍然認爲這是誤導/不清楚的。你是否同意http://cui.unige.ch/isi/bnf/JAVA/identifier.html正確完整地表示規範說明的內容? – lf215