iny*_*ner 6 ruby syntax language-design
一个愚蠢的句法问题:
如果赋值运算符实际上是一个函数,比如
def value=(x)
@value = x
end
Run Code Online (Sandbox Code Playgroud)
如果左侧操作数和"="之间没有空格,那么为什么可以将赋值作为test.value = x(带空格),但方法定义不能写为:
def value = (x)
@value = x
end
Run Code Online (Sandbox Code Playgroud)
与空间.这只是解析器决定的语法吗?
def需要后跟函数名称的标记,可选地后跟参数列表.参数列表上的括号是可选的(例如,def value= x是一个合适的定义). def value = (x)看起来def后面跟着两个令牌,然后是一个不解析的参数列表.