2016-06-12 3 views
0

Rubyでのobj.to_iとInteger(obj)の使用の違いは何ですか?例えばRubyでのobj.to_iとInteger(obj)の使用の違いは何ですか?

a = "abc"

a.to_i returns 0

しかし、私が使用している場合:

Integer(a)

リターンは次のとおりです。

ArgumentError: invalid value for Integer(): "abc"

なぜ?

+0

ない整数でなかったので、 'ABC' および整数とto_i戻り0ではないため見つけた – Li357

+0

また、エラーは返品ではありません。整数関数は整数パラメータを必要とし、to_iは文字列をとり、見つかった場合は解析と整数を取ります。 – Li357

+0

こんにちは、私はここで初心者です...と私は他の重複したquestianを見つけることができません... –

答えて

4

差が手動である:

String#to_i

If there is not a valid number at the start of str , 0 is returned.

Kernel#Integer

In any case, strings should be strictly conformed to numeric representation. This behavior is different from that of String#to_i .

関連する問題