2011-03-10 129 views

回答

5
由於

您的代碼進行比較,以codecode.empty?,即,code == code.empty?的結果,這是錯誤的。字符串可以降級爲布爾值,但'' == true的顯式相等將評估爲false

+0

啊,當然..謝謝 – noli 2011-03-10 07:49:51

3

表達式code.empty?是調用方法empty?的方法調用,返回值true。然後使用表達式true === codetrue值與code變量進行比較,該表達式爲false,因此它將執行else代碼塊。

這可能是你想要什麼,而不是:

case code 
when "" 
    "Code is empty" 
else 
    code 
end 

更簡單的方法來做到這一點是通過使用三元運算符:

code.empty? ? "Code is empty" : code 
相關問題