【问题标题】:Multiple Variable Assignment from Single Hash单个哈希的多变量赋值
【发布时间】:2013-10-02 15:49:23
【问题描述】:

我正在尝试让一个数组为两个变量赋值。

test = "hello, my,name,is,dog,how,are,you"
testsplit = test.split "," 
testsplit.each do |x,y|
  puts y
end

我认为它会打印出来

my
is
how
you

但似乎这些值只传递给x,而不是y。当我运行这段代码时,y 返回为空。

【问题讨论】:

  • 您的标题需要修复。没有哈希,您对“多重分配”的引用不清楚。

标签: ruby arrays variables loops


【解决方案1】:

Array#each 每次迭代只会传递一个项目(因此 x 将在每次传递时从数组中分配一个值,而 y 将始终分配给 nil)。因此您需要使用带有参数的 Enumerable#each_slice 方法作为 2.

test = "hello, my,name,is,dog,how,are,you"
testsplit = test.split "," 

testsplit.each_slice(2) do |x,y|
  puts y
end

# >>  my
# >> is
# >> how
# >> you

【讨论】:

    【解决方案2】:

    你可以使用each_slice一次取2个元素:

    test = "hello, my,name,is,dog,how,are,you"
    testsplit = test.split "," 
    
    testsplit.each_slice(2) do |x,y|
      puts y
    end
    
    # =>  my, is, how, you
    

    【讨论】:

    • 非常感谢先生。
    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2014-03-22
    相关资源
    最近更新 更多