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

Arrays 数组索引0设置为变量,然后返回nil值Ruby,arrays,ruby,object,Arrays,Ruby,Object,使用下面的puts命令,我输出变量new_array的内容及其索引0处的内容,我还将其存储在名为first element的变量中。然后我输出first_元素的类,并得到返回的nil类。有人能解释为什么会这样吗?还有,有没有更好的方法 谢谢 new_array = [] first_element = new_array[0] array = ["1", "2"] array.each do |x| new_array << x.to_i end puts new_a

使用下面的puts命令,我输出变量
new_array
的内容及其索引0处的内容,我还将其存储在名为
first element
的变量中。然后我输出
first_元素的类
,并得到返回的
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

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


要使它不是
nil
,您需要在
新数组中放入一些内容,例如
[“foo”,“bar”,3.14]
。然后,
第一个\u元素
将是
“foo”
,它是
字符串
类。

初始化
新数组
时,它将初始化为空数组。这意味着它有零个元素。如果您试图访问一个索引,那么您就是在尝试访问一个不存在的索引。在Ruby中,这被称为nil。

啊,我明白你的意思了。我把它移到了each方法下面,现在它可以工作了。谢谢
$ruby testing_2.rb
1
NilClass