gpt4 book ai didi

ruby - 此代码如何发送 :[] work?

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:18 26 4
gpt4 key购买 nike

以下代码生成输出 9。我理解 send 只是调用方法 :[],但我对参数的工作方式感到困惑。

 x = [1,2,3]
x.send :[]=,0,4 #why is x now [4,2,3]
x[0] + x.[](1) + x.send(:[],2) # 4 + 2 + 3

第 2 行和第 3 行如何工作?

最佳答案

Object#send提供了另一种调用方法的方法。

x.send :[]=,0,4  

是说,在x上调用[]=方法,并传递参数04,它相当于:

x[0] = 4

名称send 是因为在Ruby 中,方法是通过向对象发送消息来调用的。该消息包含方法的名称,以及方法可能需要的参数。这个想法来自 SmallTalk。

关于ruby - 此代码如何发送 :[] work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855887/

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