如何在新的ruby語法下創建一個以數字作爲鍵的散列?例如{abc: 123}
創建與符號abc
爲重點的哈希,但{123: 'abc' }
拋出異常(一樣{123.to_sym: 'abc'}
。我看到唯一的例外是syntax error, unexpected '}', expecting $end
,我可以做hash[123] = 'abc'
或Hash[123, 200]
,並且可以在舊的語法下做{123 => 'abc'}
但不看看如何將新的JSON風格的語法下創建{123: 'abc'}
。數字作爲紅寶石1.9.x語法的關鍵
0
A
回答
1
你不能。語法針對的是Symbol
S中的也是有效的Ruby標識符鑰匙。123
是Fixnum
,不是Symbol
,即使它分別是 a Symbol
,它仍然不是有效的Ruby標識符。
+0
無賴,但感謝您花時間回答Jörg。似乎應該有一個簡單的方法來轉換,但我無法弄清楚。我打算保留這一點,看看其他人是否有不同的看法。如果沒有,我會給你信貸的答案,因爲我也傾向於它不可能。 –
0
你可以認爲123已經是一個符號,因爲123和符號一樣唯一。所以{123:「abc」}
是不可能的。
相關問題
- 1. 需要紅寶石關鍵字參數
- 2. 調整紅寶石散列語法關鍵字的Vim colorscheme::val
- 3. 紅寶石1.9正則表達式作爲散列鍵
- 4. Ruby 1.9的方法,紅寶石1.8.6
- 5. 紅寶石2.1+關鍵參數初始化器語法
- 6. 紅寶石'除非'關鍵字
- 7. 紅寶石super關鍵字引發ArgumentError
- 8. self關鍵字在紅寶石
- 9. 紅寶石字符串轉換爲關鍵字參數
- 10. 紅寶石的SAXParser語法
- 11. 紅寶石1.8.7與紅寶石1.9+性能
- 12. 紅寶石字數組作爲散列?
- 13. 紅寶石通法作爲參數
- 14. 紅寶石哈希火箭VS 1.9語法
- 15. 紅寶石語法問題
- 16. 紅寶石座語法
- 17. 紅寶石2語法,$`
- 18. 紅寶石:「NoMethodError」更新到Ruby 1.9的
- 19. 紅寶石上的砂礫警告1.9
- 20. 爲mac製作紅寶石寶石?
- 21. 創建的關鍵特殊字符,新的語法紅寶石哈希
- 22. 紅寶石組通過的關鍵
- 23. 紅寶石模板引擎,看起來像紅寶石語法
- 24. 紅寶石:二維數組語法
- 25. 線程塊紅寶石主線程1.9
- 26. 紅寶石1.9帶不去除空白
- 27. 紅寶石1.9,RVM,屈和rackup
- 28. 紅寶石:方法的語法
- 29. 紅寶石從字典中的基於關閉的關鍵
- 30. 如何檢查寶石是否支持紅寶石1.9
你不這樣做,AFAIK。新的語法是一個特定結構的語法糖,符號和數字不會轉入符號。 –
JavaScript風格的表示法只適用於[some](http://stackoverflow.com/a/8675314/479863)[symbols](http://stackoverflow.com/a/10004344/479863),如果您的密鑰isn ''符號或者是符號而不是有效的標籤,那麼你必須使用hashrocket。 –
可能重複[\':key =>「value」\'和\'key:「value」\'hash notations?](http://stackoverflow.com/questions/8675206/is - 鍵值和鍵值之間的任何區別 - 哈希 - 否) –