繁体   English   中英

Ruby和哈希之间的区别是什么?

[英]What is the difference between : and “” in Ruby hashes?

我看到有些人使用这样的哈希:

end_points = { "dev" => "http://example.com"}

在其他地方使用这个:

 end_points = { :dev => "http://example.com"}

这两种方法有什么区别?

""声明一个字符串 :声明一个符号 如果您正在使用哈希,并且您不需要更改密钥的值或保留任何内容,请使用符号。

请查看此内容以获得更详细的说明。

:dev是一个符号, 'dev'是一个String。

大多数情况下,使用符号但两者都是正确的。 一些人读到了这个主题:

什么是符号以及我们如何使用它们?

为什么在Ruby中使用符号作为哈希键?

在第一种情况下,您使用第二个字符串使用符号。 符号是Ruby中的特定类型。 在整个程序中只有一个符号实例,但字符串可以有很多。

> :sym.__id__
=> 321608
> :sym.__id__
=> 321608
> "sym".__id__
=> 17029680
> "sym".__id__
=> 17130280

如您所见,符号始终具有相同的ID,这意味着它始终是相同的对象,但字符串是每次新的字符串在新的内存位置。 这就是为什么符号作为哈希键更常见的情况,它只是更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM