在Ruby中使用obj.to_i和Integer(obj)之间的差异是什么?

时间:2016-06-12 03:59:18

标签: ruby

在Ruby中使用obj.to_i和Integer(obj)之间的差异是什么?

例如:

  

a =“abc”

     

a.to_i返回0

但是,如果我使用:

  

整数的(a)

回报是:

  

ArgumentError:Integer()的值无效:“abc”

为什么?

1 个答案:

答案 0 :(得分:4)

手册中存在差异:

String#to_i

  

如果str开头没有有效号码,则会返回0

Kernel#Integer

  

在任何情况下,字符串都应严格遵守数字表示。此行为与String#to_i的行为不同。