Smalltalk返回优先级

Smalltalk返回优先级,smalltalk,squeak,Smalltalk,Squeak,我想澄清一下退货的优先顺序 语句,它似乎违背了一般的优先顺序 规则 例如表达式 ^ 2 + 3. 返回5(这是我想要的),但它不应该只返回2吗 哪个^1的优先级高于二进制+的优先级?Smalltalk的^1真的是一个运算符吗?我想这是一个相当保守的象征。当周围的方法返回时,“悬空”+3会发生什么情况?我认为这个行为是正确的,因为return语句是“正常”Smalltalk方法中发生的最后一个语句 返回符号^是为数不多的语言内置结构之一。Smalltalk将返回^symbol后面表达式的值。S

我想澄清一下退货的优先顺序 语句,它似乎违背了一般的优先顺序 规则

例如表达式

^ 2 + 3. 
返回5(这是我想要的),但它不应该只返回2吗
哪个^1的优先级高于二进制+的优先级?

Smalltalk的^1真的是一个运算符吗?我想这是一个相当保守的象征。当周围的方法返回时,“悬空”+3会发生什么情况?我认为这个行为是正确的,因为return语句是“正常”Smalltalk方法中发生的最后一个语句


返回符号^是为数不多的语言内置结构之一。Smalltalk将返回^symbol后面表达式的值。

Smalltalk中没有“一元运算符”。只有3个优先级别:一元消息(“接收方消息”)、二进制运算符(“接收方+参数”)和n元关键字消息(“接收方消息:参数1”)。在任何情况下,接受者都是第一位的


所以“^”不是运算符,而是指示返回语句。类似地,在“-4”中“-”不是运算符,而是数字文字的一部分。

我的意思是可以互换地暗示运算符/方法。该行为是正确的,但我想知道“^”的优先规则是如何定义的,以及它是否被特殊处理。因此,我将其反向设置,我一直认为“^”是要发送给2的消息。谢谢,这就把它清理干净了。
^
是一条发送到thisContext的消息,如果您想到它(或thisContext父项)^^请注意,在squeak 3.9之前,空格被接受为负数,如-3。删除此项是因为它可能被视为一元运算符,因此没有文档记录并且可能会引起混淆。不完全是:[…]对于更合理的>>表达式,是:)已编辑。