Ski*_*ick 4 language-agnostic programming-languages operators associativity
我已经阅读了Ruby编程语言中有关运算符的部分,这让我想到了运算符关联性.顺便说一下,这不是一个Ruby问题 - 它适用于所有语言.
我知道运营商必须以某种方式关联,我可以看到为什么在某些情况下,一种方式会优于另一种方式,但我很难看到更大的图景.语言设计者是否有一些标准用来决定从左到右应该从哪里做什么?从右到左应该做什么?在某些情况下,它"只是有意义",因为它只是一种方式,而其他情况只是一种武断的决定吗?或者这背后有一些宏伟的设计?
通常它的语法是"自然的":
x - y + z.你希望它是从左到右,所以你得到(x - y) + z而不是x - (y + z).a = b = c.你希望它是从右向左,所以你得到的a = (b = c),而不是(a = b) = c.我无法想象一个选择似乎是"任意"的例子.
免责声明:我不知道Ruby,所以上面的例子都基于C语法.但我确信同样的原则适用于Ruby.