看板 Ruby 關於我們 聯絡資訊
版本為 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://www.ptt.cc/bbs/Ruby/M.1476462775.A.649.html
dododavid006: module 是關鍵字 所以應該只能用 :module 10/15 00:39
AIGecko: 好像有些保留字可以有些不行 正在踹 10/15 00:42
AIGecko: do def module if for unless until while以上不可 10/15 00:45
AIGecko: 其他像是class when else end elsif就可以 10/15 00:46
AIGecko: 不行的保留字後面都是期待有end出現 10/15 00:48
AIGecko: 以前也沒想過這種用保留字的寫法會造成錯誤 10/15 00:51
joshua5201: 保留字跟關鍵字定義不一樣 10/15 14:37
AIGecko: 不小心混為一談了 關鍵字是和特殊意義 保留字是不能取名 10/15 21:52
tonytonyjan: 那是你用 irb 才會這樣,它在等 end 10/16 01:46
AIGecko: 感謝樓上 測試過在檔案中寫了print({module:1})是合法的 10/16 22:02
AIGecko: 但是省略小括號就語法錯誤了 10/16 22:03
aquarianboy: 省略小括號會錯是因為後面就變 block 了 10/25 02:31
aquarianboy: 你該省略的是大括號 print(module: 2) 10/25 02:31