【问题标题】:array index 0 set to a variable and then returns nil value, Ruby数组索引 0 设置为变量然后返回 nil 值,Ruby
【发布时间】:2016-05-01 05:34:40
【问题描述】:

通过下面的 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

【问题讨论】:

    标签: arrays ruby object


    【解决方案1】:

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

    【讨论】:

    • 啊,我明白你在说什么。我把它移到了每个方法的下面,它现在可以工作了。谢谢。
    【解决方案2】:

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

    要使其不是nil,您需要在new_array 中添加一些内容,例如["foo","bar",3.14]。那么first_element 就是"foo",也就是String 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 2012-06-10
      相关资源
      最近更新 更多