使用下面的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
答案 0 :(得分:3)
初始化new_array
时,它被初始化为空数组。这意味着它没有元素。如果您尝试访问索引,则会尝试访问不存在的索引。在Ruby中,这被称为nil。
答案 1 :(得分:0)
您正在获取空白数组的第一个值,该数组不存在,因此它变为nil
。 NilClass
只是nil
对象的类名。
要使其不是nil
,您需要在new_array
中放置一些内容,例如["foo","bar",3.14]
。然后,first_element
将是"foo"
,即String
类。