2012-09-22 50 views
0

String#to_i返回0當字符串不匹配任何數字字符,我明白,包括我自己在內的很多人都認爲這是不自然的,寧可期待nil在這種情況下返回。但是Matz另有設計。什麼是最好的方式來區分字符串實際上是"0"(或"00"等)與不包含數字字符的字符串?String#to_i不匹配

+1

你可能想看看這篇文章: http://stackoverflow.com/questions/1235863/test-if-a-string-is-basically-an-integer-in-quotes-using-紅寶石 – Mark

回答

4

用途:

Integer('')       # => #<ArgumentError: invalid value for Integer: ""> 
Integer('0')      # => 0 
+0

太棒了。我不知道。 – sawa

0

像這樣的事情i = s.to_i ; i = nil if i == 0 && s != '0'。如果您經常需要它 - 無論是monkeypatch to_i還是隻添加better_to_i。

相關問題