我想澄清一下返回的优先级
声明,这似乎违反了一般优先顺序
规则。
例如表达式
^ 2 + 3.
返回 5(这是我想要的)但它不应该只返回 2,因为一元运算符
其中 ^ 的优先级高于 + 哪个是 Binary?。
最佳答案
Smalltalk 中没有“一元运算符”。只有 3 个优先级:一元消息(“接收方消息”)、二元运算符(“接收方 + 参数”)和 n 元关键字消息(“接收方消息:参数 1”)。在所有情况下,接收者是第一位的。
所以“^”不是运算符,而是表示返回语句。类似地,在“-4”中,“-”不是运算符而是数字文字的一部分。
关于Smalltalk 返回优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401875/