在方法中定义一个 int
变量并将其初始化为 0
直到计算出特定的 int
值。那么一个 char
值可以初始化为什么呢?
char retChar = '';
这会导致错误,如果初始化为 -1
,则会提示字符过多。
在方法中定义一个 int
变量并将其初始化为 0
直到计算出特定的 int
值。那么一个 char
值可以初始化为什么呢?
char retChar = '';
这会导致错误,如果初始化为 -1
,则会提示字符过多。
通常情况下,对于局部变量,我尽可能晚地初始化它们。很少需要“虚拟”值。但是,如果你确实需要,可以使用任何值-如果你确定在读取之前将为其赋值,则不会产生任何影响。
如果您想要0的char
等效值,那就是Unicode 0,可以写为
char c = '\0';
这也是类型为char
的实例(或静态)变量的默认值。
'\0'
和'\u0000'
是相同的值。请参见https://gist.github.com/jskeet/191afed452e1f12dbb00493e29f69b68。 - Jon Skeet\u0000
相同值,就像16与0x10相同一样。不过,我并没有混淆不同的表示方式。然而,我怀疑我无法说服你我是正确的,你肯定也无法说服我你是正确的(即使你一开始就是正确的,这种吹毛求疵是否值得)。我建议我们让评论线程在这个点上结束。 - Jon Skeet你需要将变量初始化为某个值
char retChar = 'x';
或者你让它自动初始化,这是默认的。
char retChar = '\0';
ASCII码中的数字0,与之相同
char retChar = (char) 0;
char类型可以初始化为什么值?
听起来作者并不确定是自动初始化(即您没有影响)还是显式初始化。但是您无法更改默认值。
我只会这样做:
char x = 0; //Which will give you an empty value of character
正如您在链接的讨论中所看到的,没有必要使用特殊字符初始化char,因为它已经为我们完成,并由'\u0000'字符代码表示。
因此,如果我们只想检查指定的char是否已初始化,只需编写:
if(charVariable != '\u0000'){
actionsOnInitializedCharacter();
}
问题链接:char的默认值是什么?
0
或'\u0000'
可以吗?
Integer
而不是int
。 - skaffman