0

String#to_i文字列がどの数字とも一致しない場合に返されます。0私を含む多くの人がこれを不自然だと考えており、むしろnilそのような場合に返されることを期待していることを理解しています。しかし、マッツはそれを別の方法で設計しました。"0"実際に(または"00"など) である文字列と数字を含まない文字列を区別する最良の方法は何ですか?

4

2 に答える 2

4

使用する:

Integer('')                         # =>  #<ArgumentError: invalid value for Integer: ""> 
Integer('0')                       # => 0  
于 2012-09-22T15:54:02.657 に答える
0

このようなものi = s.to_i ; i = nil if i == 0 && s != '0'。頻繁に必要な場合は、monkeypatch to_i か、better_to_i を追加してください。

于 2012-09-22T16:09:47.237 に答える