向方法发送一行哈希值

时间:2016-04-12 14:34:20

标签: ruby hash parameters

我有一个包含单词的数组,我将用作键。我通过这个数组迭代并将单词作为键和用户输入作为值简化,如下所示:

input = Hash.new() 
array.each do |a|

  input[a] = gets.strip
end

例如数组["one", "twoo", "three"] 并且用户首先输入:三个

我想通过{"one" => "three"} 所以当前的关键和价值 现在我想通过这个" line"数组的方法如何做到这一点?

3 个答案:

答案 0 :(得分:1)

目前还不清楚你想要达到什么目标。我看待它的方式,你可以指三件事之一:

  • "我希望在用户将密钥和值输入方法后传递密钥和值"

    array.each do |key|
      input[key] = gets.strip
      my_method(key, input[key])
    end
    
  • 可能的旋转是"但我想将它们作为单个哈希传递#34;

    array.each do |key|
      input[key] = gets.strip
      my_method({key, input[key]})
    end
    
  • "我想在用户填写所有值后传递整个哈希值"

    array.each do |key|
      input[key] = gets.strip
    end
    my_method(input)
    

答案 1 :(得分:0)

只需调用该方法并传递“line”:

input = Hash.new() 

array.each do |a|
  input[a] = gets.strip

  # Send a line that user has inputed
  your_method(input[a])

  # Send key and the line that user has inputed
  your_method(a, input[a])
end

答案 2 :(得分:0)

我得到的印象是你不是想要一次传递整个哈希。如果是这样,这里是一行答案

arr.each{|x| my_method({x => gets.strip})}

如果我错了,你想一次传递它。这是一行答案

my_method(Hash[arr.zip(arr.map{gets.strip})])