为什么ruby不支持包含运算符的符号?

为什么ruby不支持包含运算符的符号?,ruby,metaprogramming,Ruby,Metaprogramming,我的问题是为什么ruby不支持包含运算符的符号(它背后的想法是什么) 榜样 attr_accessor :active? 相反地 它支持 :@user 但不是 :user@ 我不明白你所说的“运算符”是什么意思,但你所有的例子显然都是有效的Symbols: :active? 'active?'.to_sym :'active?' 及 是完全有效的Symbols符号s甚至可以包含空格以及任何可以想象的Unicode字符: “我相信,你应该帮助解析器理解你::“user@”?@fl

我的问题是为什么ruby不支持包含运算符的符号(它背后的想法是什么)

榜样

attr_accessor :active?
相反地

它支持

  :@user
但不是

  :user@ 

我不明白你所说的“运算符”是什么意思,但你所有的例子显然都是有效的
Symbol
s:

:active?
'active?'.to_sym
:'active?'

是完全有效的
Symbol
s<代码>符号s甚至可以包含空格以及任何可以想象的Unicode字符:


“我相信,你应该帮助解析器理解你:
:“user@”
?@fl00r,没关系,但是你能简要解释一下上面的内容,以及我可以理解解析器的资源吗?Sachin,如果你想详细了解Ruby的解析器是如何工作的,以及更一般地说,引擎盖下发生了什么(又名bonnet),我可以推荐。是的。那本书是专门为Ruby internalsdoes写的:'active'看起来更好,还是:active?这和这个问题有什么关系?
'user@'.to_sym
:'user@'