2012-04-26 236 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 
相關問題