作者AIGecko (師大貓耳控)
看板Ruby
標題[問題] 雜湊中以符號為鍵的字面常數
時間Sat Oct 15 00:32:49 2016
版本為 ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
今天測試雜湊的literal發生一個問題
{
module:
2 }
這個字面常數不能正確輸入
按下enter後不會完成輸入
但是
{
:module =>
2 }
則可以正常運行
搜尋過雜湊的字面常數或是保留字也沒有線索
是否有相關的保留字或是為BUG?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.174.85
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ruby/M.1476462775.A.649.html
1F:推 dododavid006: module 是關鍵字 所以應該只能用 :module 10/15 00:39
2F:→ AIGecko: 好像有些保留字可以有些不行 正在踹 10/15 00:42
3F:→ AIGecko: do def module if for unless until while以上不可 10/15 00:45
4F:→ AIGecko: 其他像是class when else end elsif就可以 10/15 00:46
5F:→ AIGecko: 不行的保留字後面都是期待有end出現 10/15 00:48
6F:→ AIGecko: 以前也沒想過這種用保留字的寫法會造成錯誤 10/15 00:51
7F:推 joshua5201: 保留字跟關鍵字定義不一樣 10/15 14:37
8F:→ AIGecko: 不小心混為一談了 關鍵字是和特殊意義 保留字是不能取名 10/15 21:52
9F:推 tonytonyjan: 那是你用 irb 才會這樣,它在等 end 10/16 01:46
10F:→ AIGecko: 感謝樓上 測試過在檔案中寫了print({module:1})是合法的 10/16 22:02
11F:→ AIGecko: 但是省略小括號就語法錯誤了 10/16 22:03
12F:→ aquarianboy: 省略小括號會錯是因為後面就變 block 了 10/25 02:31
13F:→ aquarianboy: 你該省略的是大括號 print(module: 2) 10/25 02:31