gpt4 book ai didi

ruby - "k.send :hello"- 如果 k 是 "receiver",谁是发件人?

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:35 25 4
gpt4 key购买 nike

在下面的例子中,为什么我们说“k.send :hello”而不是“k.receive :hello” if, as stated elsewhere , k 实际上是接收者?

听起来 k 是发送者而不是接收者。

当我们说“k.send :hello”时,谁在发送,如果不是 k?

(你是不是和我一样一头雾水?)

class Klass
def hello
"Hello!"
end
end
k = Klass.new
k.send :hello #=> "Hello"
k.hello #=> "Hello"

最佳答案

在 Smalltalk 中,一切都是对象。 “发送者”是消息来源范围的所有者对象(即“this”或“self”指针)。

和以前一样,Ruby 继承了这个概念。简而言之,如果我给你寄了一封信,我就是“寄件人”(它来 self 的办公室),而你是“收件人”(信封上的地址是你的)。所以我会写 foo.send myLetter:你,foo,收到我的信。发件人是隐式的,代码的所有者进行“发布”。

关于ruby - "k.send :hello"- 如果 k 是 "receiver",谁是发件人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com