Smalltalk返回优先级

时间:2011-06-19 10:37:02

标签: smalltalk squeak

我想对回归的优先顺序做一点澄清 声明,似乎违背了一般优先权 规则。

例如表达式

^ 2 + 3. 

返回5(这就是我想要的)但是不应该从一元运算符返回2 其中^是一个优先于+是二进制?

3 个答案:

答案 0 :(得分:10)

Smalltalk中没有“一元运营商”。只有3个优先级:一元消息(“接收者消息”),二元运算符(“接收者+参数”)和n元关键字消息(“接收者消息:参数1”)。在所有情况下,接收器都是第一位的。

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

Smalltalk's ^真的是一个操作员吗?我想这是一个保留的符号。当周围的方法返回时,“晃来晃去”+ 3会发生什么?我认为行为是正确的,因为return语句是在“普通”Smalltalk方法中发生的最后一个语句。

此致