Ruby推到了一个散列

Ruby推到了一个散列,ruby,hash,Ruby,Hash,我有一个由两部分组成的问题,如果让人感到困惑,我会提前道歉。我正在尝试将用户输入放入一个空哈希中。我知道在数组中使用“示例字符串”,str2=>“示例字符串2”,str3=>“示例字符串3”} 或者有没有办法让ruby自己分配一个键 如果第二部分令人困惑,请再次道歉。我知道数组会更好,但我现在面临的一个小挑战是要求使用散列。对于使用的数组,这里有两种方法可以添加到散列中 hash[str1] = "example string" hash.merge!(str1 => "example s

我有一个由两部分组成的问题,如果让人感到困惑,我会提前道歉。我正在尝试将用户输入放入一个空哈希中。我知道在数组中使用“示例字符串”,str2=>“示例字符串2”,str3=>“示例字符串3”}

或者有没有办法让ruby自己分配一个键


如果第二部分令人困惑,请再次道歉。我知道数组会更好,但我现在面临的一个小挑战是要求使用散列。

对于使用的数组,这里有两种方法可以添加到
散列中

hash[str1] = "example string"
hash.merge!(str1 => "example string")

向ruby哈希添加元素的另一种方法
存储(键、值)


如果您不关心索引键,因为散列本质上是键/值存储,那么您可能需要:


这类似于一个集合,但如果您不关心值,则可能使用效率较低。

好的,它不是数组,所以“我的问题是,为什么要将其存储在散列中?”?似乎您并不真正关心键,那么,为什么不将值存储在数组中呢?这是您的第二个问题,如果用户提供了带有唯一数字部分的
arr=[“cat9”,“dog12”]
,您可以编写如下内容:
my_hash=arr.each_with_object({})s,h{h[“str 35; s[/\d+\z/]}]]]]=s}>,“str12”=>“dog12”}
是您的第一个问题。您可以定义一个方法
欢迎使用堆栈溢出。您可以改进您的问题。请阅读包含“如何以智能方式提问”链接的内容
hash[str1] = "example string"
hash.merge!(str1 => "example string")
hash = {}
hash.store("first", 42)
hash #=> {"first"=>42}
require 'set'

set = Set.new

set << gets.chomp
values = { }

values[input.gets] = true
your_hash = {}
hash_key = "x"
hash_value = "y"
your_hash[:hash_key] = hash_value