你好,我想知道为什么会这样,以及to_i是如何定义的。
一个简单的问题,为什么
"string".to_i
=> 0?
"9".to_i
=> 9发布于 2014-03-28 10:36:25
根据the documentation for to_i的说法,“如果在str的开头没有有效的a数字,则返回0”。
发布于 2014-03-28 11:22:50
在字符串上调用.to_i将通过解释字符串开头的有效数字返回一个数字(以10为基数)。
"string".to_i返回0,因为.to_i无法解释字符串开头的有效数字。"9".to_i返回9,因为前导(或者在本例中,唯一的)字符是"9“,并且它可以被解释为一个有效的数字。
但是,这并不意味着在以字母开头的字符串上调用.to_i总是返回0。例如,"b6".to_i(16)返回182,因为这意味着您希望将"b6“(以16为基数,也称为十六进制)解释为以10为基数。
请参阅此处的文档:http://www.ruby-doc.org/core-2.1.0/String.html#method-i-to_i
https://stackoverflow.com/questions/22703132
复制相似问题