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

作者: AIGecko (師大貓耳控)   2016-10-15 00:32:49
版本為 ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
今天測試雜湊的literal發生一個問題
{ module: 2 }
這個字面常數不能正確輸入
按下enter後不會完成輸入
但是
{ :module => 2 }
則可以正常運行
搜尋過雜湊的字面常數或是保留字也沒有線索
是否有相關的保留字或是為BUG?
作者: dododavid006 (朔雪)   2016-10-15 00:39:00
module 是關鍵字 所以應該只能用 :module
作者: AIGecko (師大貓耳控)   2016-10-15 00:42:00
好像有些保留字可以有些不行 正在踹do def module if for unless until while以上不可其他像是class when else end elsif就可以不行的保留字後面都是期待有end出現以前也沒想過這種用保留字的寫法會造成錯誤
作者: joshua5201 (炸蝦子)   2016-10-15 14:37:00
保留字跟關鍵字定義不一樣
作者: AIGecko (師大貓耳控)   2016-10-15 21:52:00
不小心混為一談了 關鍵字是和特殊意義 保留字是不能取名
作者: tonytonyjan (南洋大兜蟲)   2016-10-16 01:46:00
那是你用 irb 才會這樣,它在等 end
作者: AIGecko (師大貓耳控)   2016-10-16 22:02:00
感謝樓上 測試過在檔案中寫了print({module:1})是合法的但是省略小括號就語法錯誤了
作者: aquarianboy (我是沒牌的營養師!)   2016-10-25 02:31:00
省略小括號會錯是因為後面就變 block 了你該省略的是大括號 print(module: 2)

Links booklink

Contact Us: admin [ a t ] ucptt.com