我在努力理解符號和文本之間的區別:關於冒號位置。我的理解是,當我們使用:符號時,我們指的是這個對象以及它所包含的任何東西,在這裏,文本:用於像文本一樣爲文本賦值,就像變量一樣。這是正確的還是可以有人詳細說明使用情況。謝謝。冒號位置在:something和somethingelse之間有什麼區別:
回答
:whatever
是一個符號,你已經得到了該部分的權利。
當您使用的是亂碼,這是你如何使用1.8倍紅寶石來定義它:
{:key => value, :another_key => another_value}
這就是所謂的hashrocket語法。在紅寶石1.9倍,此變更爲:
{key: value, another_key: another_value}
有將仍然加載hashrocket語法向後兼容性。但是,在1.9,「關鍵:」是一個符號
非常感謝! – Tom
你最後的陳述會引起混亂......我不認爲'key:'是ruby中的符號,但是當這個語法進入大括號內部時,ruby將它標識爲符號。此外,hashrocket語法不僅僅用於向後兼容。事實上,如果你想用非符號鍵定義一個散列,你需要依賴散列火箭語法。我會說新的json風格語法更像是一個語法糖。 – rubyprince
的{:key => value}
是在紅寶石老哈希語法,現在我們有一個新的哈希語法更像是JSON所以
{:key => value}
相同
{key: value}
舊人,我們都熟悉的是:
old_hash = {:simon => "Talek", :lorem => "Ipsum"}
這是所有美好和花花公子,但它可能是更簡單和更清潔。退房Ruby 1.9的風格,它有點類似於JSON:
new_hash = {simon: "Talek", lorem: "Ipsum"}
但現在你仔細看,問,「而在此前的關鍵是一個符號明確,什麼這個現在是?」。
那麼你是對的,新的符號是最常見的哈希風格的語法糖,所謂的符號對象哈希。如果這樣做,在內部評級法,你會看到紅寶石返回老同學哈希,以用作鍵的符號:
> new_hash = {simon: "Talek", lorem: "Ipsum"}
=> {:simon=>"Talek", :lorem=>"Ipsum"}
如果您需要擁有任意對象作爲哈希鍵,你仍然有去做舊派。
裁判:http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax
- 1. 冒號「:」和胖箭頭「>」之間的區別是什麼?
- 2. Casting - 在C#中,「(myObject)something」和「something asObject」有什麼區別?
- 3. ||之間有什麼區別?和|在R?
- 4. 引號和廚師屬性中冒號之間的區別是什麼?
- 5. List <Something>和List <?有什麼區別?擴展Something>?
- 6. 什麼使反引號和撇號之間有很大區別?
- 7. Ruby--單引號和雙引號之間有什麼區別?
- 8. 爲什麼32位和64位numpy/pandas之間有區別
- 9. C++中的位向量和位集之間有什麼區別?
- 10. 在jQuery中,'.add()'和','(逗號)之間有什麼區別?
- 11. 主令牌和假冒令牌之間的區別是什麼
- 12. 「層」和「層」之間有什麼區別?
- 13. Tableau和QlikView之間有什麼區別
- 14. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 15. @Entity和@embeddable之間有什麼區別
- 16. ContentObservable和DataSetObservable之間有什麼區別?
- 17. touchmove和gesturechange之間有什麼區別?
- 18. :notification.flags和notification.defaults之間有什麼區別?
- 19. proc和lambda之間有什麼區別?
- 20. :: after和after之間有什麼區別?
- 21. read()和io.read()之間有什麼區別?
- 22. Request()和Request.Form()之間有什麼區別?
- 23. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 24. getA()和this.getA()之間有什麼區別?
- 25. (int)和intval()之間有什麼區別?
- 26. set_value和= pandas之間有什麼區別
- 27. * zoom和zoom之間有什麼區別?
- 28. {0}和「」之間有什麼區別?
- 29. typedef和using之間有什麼區別?
- 30. 「」和「'之間有什麼區別?
符號:值只出現在散列表達,以此來縮短,但我沒有發現很多人青睞它。 – texasbruce