这些代码有相同的变量名,但唯一的区别是,一种是全宽度,另一种是半宽。Java支持全宽度字符作为变量名,这让我感到震惊。我想知道Java如何区分这两个字符。
public class Main {
public static void main(String[] args) {
int[] x = { 1, 2, 3 };
int[] x = { 1, 2, 3 };
int[] y = { 4, 5, 6 };
int[] y = { 4, 5, 6 };
int[] z = new int[x.length];
int[] z = new int[x.length];
for (int i = 0; i < z.length; i++) {
z[i] = x[i] + y[i];
z[i] = x[i] + y[i];
}
System.out.println(z);
System.out.println(z);
}
}发布于 2019-07-17 05:03:00
Java在源代码中支持Unicode,因此x (u'\uff58')与x (u'x')有很大的不同。
本质上不同的字符,与拥有int[] a和int[] b相同
但就可读性而言,这是一个大问题。即使有两个不同的变量,其他用户也很容易混淆这些名称。最好在源代码中尽可能多地使用基本拉丁字母的简单形式。
发布于 2019-07-17 05:24:54
发布于 2019-07-17 05:04:17
我猜您的源代码是用UTF-8 (或其他一些“扩展”字符集)编码的,因此x和x的代码是不同的(机器并不关心字符的图形表示,而是内部代码)。
https://stackoverflow.com/questions/57068746
复制相似问题