Pharo中的at(“at”)操作员是什么?

Pharo中的at(“at”)操作员是什么?,pharo,Pharo,我在网上查找了Pharo中@操作符的含义,但什么也找不到 Pharo@操作员的意思是什么?例如,为什么25@50评估为:“(25@50)“?在Smalltalk中,@符号用于创建类点的实例。此类类的实例有两个IVARx和y。您可以使用x:y:消息创建一个点,如下所示 Point x: 3 y: 4. 3 @ 4 但是,像这样使用消息@就不那么冗长了 Point x: 3 y: 4. 3 @ 4 创造同样的东西 请注意,x:y:是发送到类点的消息,而@4则发送到整数3。换句

我在网上查找了Pharo中
@
操作符的含义,但什么也找不到


Pharo
@
操作员的意思是什么?例如,为什么
25@50
评估为:
“(25@50)“

在Smalltalk中,
@
符号用于创建类
点的实例。此类类的实例有两个IVAR
x
y
。您可以使用
x:y:
消息创建一个
点,如下所示

  Point x: 3 y: 4.
  3 @ 4
但是,像这样使用消息
@
就不那么冗长了

  Point x: 3 y: 4.
  3 @ 4
创造同样的东西

请注意,
x:y:
是发送到类
点的消息,而
@4
则发送到整数
3
。换句话说,前者是类消息,后者是实例消息

注意,由于许多人编写
3@4
而不是
3@4
,这有可能产生令人惊讶的副作用。其实

  3@-4

(原则上)应该是坐标为
3
-4
点。但是,Smalltalk语法不同,它将解析为消息,并将选择器
@-
和参数
4
发送到接收方
3
。这就是为什么有些方言会例外,将消息解释为
3@-4
,这可以通过在
Number
中实现
@-
方法或调整解析器来实现。

在Pharo中,它是在Number类中定义的方法

@ y 
"Primitive. Answer a Point whose x value is the receiver and whose y 
value is the argument. Optional. No Lookup. See Object documentation 
whatIsAPrimitive."

<primitive: 18>
^Point x: self y: y
@y
“原语。回答一个点,其x值为接受者,y值为接受者
值是参数。可选。无查找。请参阅对象文档
什么是特权。”
^点x:自我y:y

@不是一个操作员,它是一条消息,几乎和所有东西一样。Smalltalk的基础是发送给对象的消息。