无法弄清楚如何遍历 Ruby 中的键
Can't figure out how to iterate through keys in Ruby
我有我正在做的会话的上下文。像这样:
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
。
使用each_keys
。这是 ruby 的实现方式,但您也可以使用 each
Context::CONTAINS.each_key { |k|
puts k.to_s
}
to_s
将符号转换为字符串。
Context::CONTAINS.keys
只是 each_key
的另一个别名
我有我正在做的会话的上下文。像这样:
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
。
使用each_keys
。这是 ruby 的实现方式,但您也可以使用 each
Context::CONTAINS.each_key { |k|
puts k.to_s
}
to_s
将符号转换为字符串。
Context::CONTAINS.keys
只是 each_key