2012-09-22 49 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。

相关问题