2012-04-26 64 views
0

使用字母赋值空字符串或字符串将导致GroovyCastException.Assigning带有数字值的字符串会产生一个数字。这里发生了什么操作?Groovy - 将字符串赋值给int类型的变量产生一个数字

int var_1 = 2; 
    println var_1 // 2 
    var_1 = "" 
    println var_1 // GroovyCastException 

    int var_1 = 2; 
    println var_1 // 2 
    var_1 = "2" 
    println var_1 // 50 

什么操作导致50?

回答

1

它将“2”看作单个字符字符串,并将该字符的Unicode值(U + 0032 ='2')赋予变量。因此,例如,我想,如果你这样做:

var_1 = "A" 
println var_1 

你会看到65当你做这样的事情

var_1 = "2" 
println var_1 

然后对应的Unicode值控制台

0

上字符“2”得到了打印,这是50. 类似地,如果您尝试打印“B”或“C”的Unicode值,那么您将得到66或67作为结果。

您可以通过这样打印结果50:

int var_1 = "2" 
println var_1 
相关问题