让我们看看这个简单的Java程序:
class A {
public static void main(String[] args) {
int а = 2;
System.out.println("a " + a);
}
}
它创建了初始化为a
的变量2
,并将其打印出来。但是,它没有编译:
$ javac A.java && java A A.java:4: cannot find symbol symbol : variable a location: class A System.out.println("a " + a); ^ 1 error
为什么?
答案 0 :(得分:10)
你有两种不同类型的a
。如果你将第一个重新键入为ASCII a
,那就没关系了。
第一个a
是U + 0430,“Cyrrilic小写字母a”。 (参见relevant Unicode chart。)
我个人会尝试尽可能将Java中的所有标识符保存为ASCII字符。
(这段代码甚至从哪里开始?)
答案 1 :(得分:2)
我不知道那是什么,但在int а = 2;
行,那件事肯定不是a
,而是.k.a ASCII 97。