[問題] 雜湊中以符號為鍵的字面常數

看板Ruby作者 (師大貓耳控)時間8年前 (2016/10/15 00:32), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串1/1
版本為 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

10/15 00:39, , 1F
module 是關鍵字 所以應該只能用 :module
10/15 00:39, 1F

10/15 00:42, , 2F
好像有些保留字可以有些不行 正在踹
10/15 00:42, 2F

10/15 00:45, , 3F
do def module if for unless until while以上不可
10/15 00:45, 3F

10/15 00:46, , 4F
其他像是class when else end elsif就可以
10/15 00:46, 4F

10/15 00:48, , 5F
不行的保留字後面都是期待有end出現
10/15 00:48, 5F

10/15 00:51, , 6F
以前也沒想過這種用保留字的寫法會造成錯誤
10/15 00:51, 6F

10/15 14:37, , 7F
保留字跟關鍵字定義不一樣
10/15 14:37, 7F

10/15 21:52, , 8F
不小心混為一談了 關鍵字是和特殊意義 保留字是不能取名
10/15 21:52, 8F

10/16 01:46, , 9F
那是你用 irb 才會這樣,它在等 end
10/16 01:46, 9F

10/16 22:02, , 10F
感謝樓上 測試過在檔案中寫了print({module:1})是合法的
10/16 22:02, 10F

10/16 22:03, , 11F
但是省略小括號就語法錯誤了
10/16 22:03, 11F

10/25 02:31, , 12F
省略小括號會錯是因為後面就變 block 了
10/25 02:31, 12F

10/25 02:31, , 13F
你該省略的是大括號 print(module: 2)
10/25 02:31, 13F
文章代碼(AID): #1O0GYtP9 (Ruby)
文章代碼(AID): #1O0GYtP9 (Ruby)