Smalltalk返回优先级

Jat*_*uuf 4 smalltalk squeak

我想对return语句的优先级稍作澄清,这似乎违反了一般优先规则.

例如表达式

^ 2 + 3. 
Run Code Online (Sandbox Code Playgroud)

返回5(这是我想要的)但是它不应该只返回2,因为^是一个的一元运算符优先于+是二进制的+?

Ber*_*erg 10

Smalltalk中没有"一元运算符".只有3个优先级:一元消息("接收者消息"),二元运算符("接收者+参数")和n元关键字消息("接收者消息:参数1").在所有情况下,接收器首先出现.

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