【问题标题】:Accessing an array within a hash in Ruby在 Ruby 中访问散列中的数组
【发布时间】:2010-09-28 15:54:55
【问题描述】:

我正在编写一个应用程序,它从 Excel 电子表格中提取值,然后使用版本号作为键将这些值存储在哈希中。在我尝试从哈希中检索信息之前,一切似乎都正常工作。这是构建哈希的代码:

@version_numbers.each do |version|
   user_variables = Spreadsheet.open "#{version}.xls" #Opens excel sheet for all versions present 
   user_variables_sheet = user_variables.worksheet 0 #Loads worksheet
   user_variables_hash = {}

   user_variables_sheet.each 1 do |row| #Skips the first row containing titles
        part_number = row[0].to_i
        serial = row[1].to_i
        (user_variables_hash[version] ||= []) << [part_number, serial]
    end
end

当我尝试使用 user_variables_hash['01-2'][0][0] 从 01-2 版本中检索信息时,它会产生一个错误,指出:

nil 的未定义方法“[]”:NilClass (NoMethodError)

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: ruby arrays hash


    【解决方案1】:

    对于每个版本号,您将创建一个新的空哈希 (user_variables_hash = {} ),然后将版本号插入到该新哈希中。这几乎肯定不是您想要的。

    您可能希望在每个循环之前初始化一次user_variables_hash

    【讨论】:

    • .... 我不太确定我是怎么错过的。我想我只是盯着屏幕看太久了,一切都开始融合在一起。感谢您指出如此愚蠢的错误的帮助。 面部护理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-08-26
    相关资源
    最近更新 更多