数组索引0设置为变量,然后返回nil值,Ruby

时间:2016-01-25 01:03:03

标签: arrays ruby object

使用下面的puts命令,我输出变量new_array的内容及其在索引0的内容,我也将其存储在一个名为first element的变量中。然后我输出first_element类,我得到一个nil类返回。有人可以解释为什么会这样吗?另外,有更好的方法吗?

谢谢!

new_array = []

first_element = new_array[0]

array = ["1", "2"]

array.each do |x|
    new_array << x.to_i
end

puts new_array[0]
puts first_element.class

输出

$ruby testing_2.rb
1
NilClass

2 个答案:

答案 0 :(得分:3)

初始化new_array时,它被初始化为空数组。这意味着它没有元素。如果您尝试访问索引,则会尝试访问不存在的索引。在Ruby中,这被称为nil。

答案 1 :(得分:0)

您正在获取空白数组的第一个值,该数组不存在,因此它变为nilNilClass只是nil对象的类名。

要使其不是nil,您需要在new_array中放置一些内容,例如["foo","bar",3.14]。然后,first_element将是"foo",即String类。