Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
String#to_i文字列がどの数字とも一致しない場合に返されます。0私を含む多くの人がこれを不自然だと考えており、むしろnilそのような場合に返されることを期待していることを理解しています。しかし、マッツはそれを別の方法で設計しました。"0"実際に(または"00"など) である文字列と数字を含まない文字列を区別する最良の方法は何ですか?
String#to_i
0
nil
"0"
"00"
使用する:
Integer('') # => #<ArgumentError: invalid value for Integer: ""> Integer('0') # => 0
このようなものi = s.to_i ; i = nil if i == 0 && s != '0'。頻繁に必要な場合は、monkeypatch to_i か、better_to_i を追加してください。
i = s.to_i ; i = nil if i == 0 && s != '0'