在 ruby 哈希中使用常量作为键
Using constant as keys in ruby hash
假设我有 2 个字符串常量
KEY1 = "Hello"
KEY2 = "World"
我想使用这些常量作为键值来创建哈希。
尝试这样的事情:
stories = {
KEY1: { title: "The epic run" },
KEY2: { title: "The epic fail" }
}
似乎不起作用
stories.inspect
#=> "{:KEY1=>{:title=>\"The epic run\"}, :KEY2=>{:title=>\"The epic fail\"}}"
和stories[KEY1]
显然不行。
KEY1:
是 :KEY1 =>
的语法糖,所以你实际上有 symbol 作为键, 不是常量。
要将实际对象作为键,请使用哈希火箭表示法:
stories = {
KEY1 => { title: "The epic run" },
KEY2 => { title: "The epic fail" }
}
stories[KEY1]
#=> {:title=>"The epic run"}
假设我有 2 个字符串常量
KEY1 = "Hello"
KEY2 = "World"
我想使用这些常量作为键值来创建哈希。
尝试这样的事情:
stories = {
KEY1: { title: "The epic run" },
KEY2: { title: "The epic fail" }
}
似乎不起作用
stories.inspect
#=> "{:KEY1=>{:title=>\"The epic run\"}, :KEY2=>{:title=>\"The epic fail\"}}"
和stories[KEY1]
显然不行。
KEY1:
是 :KEY1 =>
的语法糖,所以你实际上有 symbol 作为键, 不是常量。
要将实际对象作为键,请使用哈希火箭表示法:
stories = {
KEY1 => { title: "The epic run" },
KEY2 => { title: "The epic fail" }
}
stories[KEY1]
#=> {:title=>"The epic run"}