以红宝石为基值的`to_i`方法

Raj*_*rma 0 ruby

谁能to_i用以下示例解释基本参数的工作原理?

'2'.to_i(2) #=> 0
'3'.to_i(2) #=> 0
'12'.to_i(2) #=> 1
'122'.to_i(2) #=> 1
'20'.to_i(2) #=> 0
'21'.to_i(2) #=> 0
Run Code Online (Sandbox Code Playgroud)

我不知道它实际上是如何工作的。谁能解释一下?

Ama*_*dan 6

这是同样的道理'54thousand'.to_i54to_i读,直到找到字符串或无效的数字结束。

在二进制(以2为底)中,唯一有效的数字是01。因此,由于2无效,'122'.to_i(2)所以与相同'1'.to_i(2)。而且,'2'.to_i(2)''.to_i(2)相当直观0

  • 相反,''54thousand'.to_i(36)'返回521,395,291,927,273,因为它实际上将所有字符解释为基数36位。 (3认同)