我有一个关于我正在做的事情的背景。像这样:
class Context
CONTAINS = {}
end
我一直在成功使用它:
Context::CONTAINS[:alpha] = "exampleA"
Context::CONTAINS[:beta] = "exampleB"
但是:alpha
可能在代码运行的某些时候不包含任何内容。我试图通过以下方式迭代这一切:
Context::CONTAINS.each { |x| puts x }
但是我没有工作:
-:8:in `[]=': can't convert Symbol into Integer (TypeError)
我无法弄清楚如何迭代它以便只检索实际拥有并使用它们的:keys
。
答案 0 :(得分:1)
使用each_keys
。虽然你也可以使用each
Context::CONTAINS.each_key { |k|
puts k.to_s
}
to_s
将符号转换为字符串。
Context::CONTAINS.keys
只是each_key