从Ruby系列中获取单个元素

use*_*208 1 ruby range

我正在尝试从500个数字的数组中打印单个元素.我用它初始化它

arr = (1..500)
Run Code Online (Sandbox Code Playgroud)

我可以从for循环打印:

for n in arr
  print n +"\n"
end
Run Code Online (Sandbox Code Playgroud)

我可以使用打印arr.each,但如果我尝试抓住一个元素,我会收到错误.

print arr[0]
>undefined method `[]' for 1..500:Range (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

如果我初始化一个数组arr2 = ["a", "b", "c"]并尝试以这种方式获取单个元素它可以正常工作.

我假设它是因为我初始化它的方式(使用范围)但是我看起来他们说这是你应该如何初始化数字数组.

我有什么方法可以从我的阵列中获取单个元素吗?

d11*_*wtq 5

这不是一个数组,它是一个范围.您可以使用to_a以下命令将其转换为数组:

range = 0..500
arr   = range.to_a

puts arr[7] # => 6
Run Code Online (Sandbox Code Playgroud)

  • 在将来,你可以通过`puts object.class`来判断什么是类.我强烈建议您在IRB中使用这些东西,直到您熟悉该语言. (2认同)