我看到了一个ruby脚本,它定义了一个像这样的哈希数组:
boxes = [
{ :name => "playground", :ip => "19" },
{ :name => "elkstack", :ip => "22" },
{ :name => "audit", :ip => "23" }
]
我不太确定这是否是定义哈希的正确方法。我认为你宁愿定义这样的哈希数组:
boxes = [
{ "name" => "playground", "ip" => "19" },
{ "name" => "elkstack", "ip" => "22" },
{ "name" => "audit", "ip" => "23" }
]
你能说出哪一种是定义哈希的正确方法吗?它是否有副作用,你可能想避免或挑衅将这些哈希成员定义为符号?
答案 0 :(得分:2)
两种方式都是正确的。在第一种情况下,散列键将是符号,在第二种情况下,它们将是字符串。
一般来说,使用符号作为哈希键是很常见的,因为它们的效率稍高一些,因为当您多次输入相同的符号时,它只会被分配一次,相反如果您键入相同的字符串N次,它将被分配N次。
事实上,它甚至还有一个捷径。
boxes = [
{ name: "playground", ip: "19" },
{ name: "elkstack", ip: "22" },
{ name: "audit", ip: "23" }
]