我刚刚开始尝试使用Ruby,然后我发现了String#to_i
方法。假设我有以下代码:
var1 = '6 sldasdhkjas'
var2 = 'aljdfldjlfjldsfjl 6'
为什么 puts var1.to_i
输出 6
,而 puts var2.to_i
却输出 0
?我刚刚开始尝试使用Ruby,然后我发现了String#to_i
方法。假设我有以下代码:
var1 = '6 sldasdhkjas'
var2 = 'aljdfldjlfjldsfjl 6'
为什么 puts var1.to_i
输出 6
,而 puts var2.to_i
却输出 0
?to_i
方法返回一个字符串开头所有可解析数字组成的数值。第一个字符串以数字开头,所以to_i
返回该数字;第二个字符串未以数字开头,所以返回0。顺便说一句,空格会被忽略,因此" 123abc".to_i
返回123。
to_i
更详尽的例子:
irb(main):013:0* "a".to_i
=> 0
irb(main):014:0> "".to_i
=> 0
irb(main):015:0> nil.to_i
=> 0
irb(main):016:0> "2014".to_i
=> 2014
irb(main):017:0> "abc2014".to_i
=> 0
irb(main):018:0> "2014abc".to_i
=> 2014
irb(main):019:0> " 2014abc".to_i
=> 2014