簡體   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