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