Ruby 使用变量名的一部分创建字典名
我需要使用数组当前迭代的名称创建字典的名称 例如:Ruby 使用变量名的一部分创建字典名,ruby,Ruby,我需要使用数组当前迭代的名称创建字典的名称 例如: sites = ["google", "facebook", "twitter", "stackoverflow"] sites.each do |site| #{site}_success_hash = {} <-- I need the correct syntax for achieving this result. ... populate ... hash end sites=[“谷歌”、“facebook
sites = ["google", "facebook", "twitter", "stackoverflow"]
sites.each do |site|
#{site}_success_hash = {} <-- I need the correct syntax for achieving this result.
... populate ... hash
end
sites=[“谷歌”、“facebook”、“推特”、“stackoverflow”]
站点。每个do |站点|
#{site}\u success\u hash={}首先,为您的站点使用符号而不是字符串:
sites = [:google, :facebook, :twitter, :stackoverflow]
那么我想这可能有用:
sites.each do |site|
instance_variable_set("@#{site}_success_hash", {})
# populate @site_success_hash
end
请注意,您正在此处设置一个实例变量。您是否考虑过只嵌套哈希值,而不是将它们保存在单独的变量中
大概是这样的:
success_hash = {}
sites.each do |site|
success_hash[site] = #populate hash
end
但是,您要求的事情可以这样完成(假设可以使用实例变量):
instance_variable_set(“@#{variable_name},:something)
(参见答案)你应该将你的字典存储在一个超级字典中,而不是制作几个全球级别的字典。同意;这只是一个散列散列到目前为止,我没有考虑嵌套我的散列。多亏了你和前两个给我这个主意的人。我让它工作:)