Re: [問題] 哪些字可以用作 symbol 名稱?

看板Ruby作者 (是妳)時間13年前 (2011/07/30 14:52), 編輯推噓3(301)
留言4則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《bootleq (打架金剛)》之銘言: : 目前自己觀察,分成三類: : - :foo_bar : 單純的 colon 加上一般變數名 : 僅有個疑問是多位元組的字(例如 :foo字bar)是否合法 : - :"string" : 加了 qoute 裡面隨便什麼都可以。 : - :operator : 比較有疑問的是這個,參考 Operator Expressions : http://phrogz.net/ProgrammingRuby/language.html#operatorexpressions : 裡面最左欄有 Y 的是可以定義成 method,代表是合法的 symbol 嗎? : 有些我直接在 console 下 : s = :<< : 可以建一個 symbol : 但有些如 :% 或 :| 又不行 : 應該有標準可循,可是它在哪裡啊? 我用 ruby_parser parse 了 :x, :+ 之類的ruby 語句 發現Ruby 把symbol 直接視為一種literal, 而沒有function call 所以 :後面可以加什麼是被Ruby文法規範,而不是使用方法。 接著,我去查Ruby 的 BNF grammar http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf SYMBOL : :FNAME | :VARNAME FNAME : IDENTIFIER | .. | "|" | ˆ | & | <=> | == | === | = | > | >= | < | <= | + | - | * | / | % | ** | << | >> | | +@ | -@ | [] | []= VARNAME : GLOBAL | @IDENTIFIER | IDENTIFIER IDENTIFIER : sequence in /[a-zA-Z_]{a-zA-Z0-9_}/. GLOBAL : $IDENTIFIER | $any_char | $-any_char 大致上是這樣。應該可以回答你的問題。 不過有趣的是,依照這個文法, :"abc" 是不合文法的。 我不知道為什麼irb還是可以過。 http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/yacc.html 這篇文法比較好閱讀 -- 回憶不會消失...只會被蓋在灰塵下... 只要沒有去吹動~~一切....就可以默默淡忘... 所以....不要成為那傷人吧.... ^.^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.229.151 ※ 編輯: SansWord 來自: 114.45.229.151 (07/30 14:57)

07/30 16:19, , 1F
感謝!正是我需要的
07/30 16:19, 1F

07/30 17:31, , 2F
:@@y 這種好像也不符規定
07/30 17:31, 2F

07/30 19:11, , 3F
在 ruby-lang.org 找到一份比較完整的
07/30 19:11, 3F
文章代碼(AID): #1ECwf7mk (Ruby)
文章代碼(AID): #1ECwf7mk (Ruby)