在Ruby irb中,无法像时尚一样访问数组中的数字

Bla*_*man 0 ruby

我在irb中试过这个:

x = 123456
Run Code Online (Sandbox Code Playgroud)

然后我想得到一个具体的数字位置,如:

puts x[2]
Run Code Online (Sandbox Code Playgroud)

它返回0

这是为什么?

Jac*_*kin 10

唯一(明智的)方法是首先将其转换为字符串然后使用[]方法:

x_str = x.to_s
puts x_str[0..2] #prints "12"
Run Code Online (Sandbox Code Playgroud)

如果要在另一个字符串中检索字符串的位置,请使用该index方法

puts x_str.index('2') #prints 1
Run Code Online (Sandbox Code Playgroud)

Fixnum 提供[]方法,但显然不是你想要的.

替代文字

在你的代码中,它返回,0因为它是二进制表示中的第3个(零索引)位123456.

  • 是.究竟.数字不是数组. (3认同)
  • 嘘.你只会混淆一些事情.:-) (2认同)