我看到有些人使用这样的哈希:
end_points = { "dev" => "http://example.com"}
并在其他地方使用此:
end_points = { :dev => "http://example.com"}
这两种方法有什么区别?
答案 0 :(得分:3)
答案 1 :(得分:2)
答案 2 :(得分:2)
在第一种情况下,您使用第二个字符串使用符号。符号是Ruby中的特定类型。在整个程序中只有一个符号实例,但字符串可以有很多。即。
> :sym.__id__
=> 321608
> :sym.__id__
=> 321608
> "sym".__id__
=> 17029680
> "sym".__id__
=> 17130280
如您所见,符号始终具有相同的ID,这意味着它始终是相同的对象,但字符串是每次新的字符串都在新的内存位置。这就是为什么符号作为散列键更常见的情况,它只是更快。