【问题标题】:Access objects separately in a nested array在嵌套数组中单独访问对象
【发布时间】:2015-12-28 17:44:30
【问题描述】:

如何分别访问此哈希中的三个对象?

hash = {"Paul" => [25, 18]}

在这段代码中,

hash.each_pair do |k, v|
  print "#{k}: "
  v.each do |n|
    print "#{n} "
  end
  print "\n"
end

变量n[25, 18] 作为单个对象访问。例如,|n, m| 不起作用。

【问题讨论】:

    标签: ruby variable-assignment


    【解决方案1】:

    你可以像下面这样

    hash = {}
    hash["Paul"] = [25, 18]
    
    hash.each_pair do |k, (v1, v2, *rest)|
        print "#{k}: "
        print "#{v1} "
        print "#{v2} "
        print "\n"
    end
    #=> Paul: 25 18 
    

    或者,您可以尝试以下方法:

    hash = {}
    hash["Paul"] = [25, 18]
    
    hash.each_pair do |k, v|
        print "#{k}: "
        v.tap { |m, n| 
            print "#{m} "
            print "#{n} "
        }
        print "\n"
    end
    #=> Paul: 25 18 
    

    【讨论】:

      【解决方案2】:
      p [hash.keys, hash.values].flatten
        # ["Paul", 25, 18]
      

      【讨论】:

        猜你喜欢
        • 2022-01-08
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多