gpt4 book ai didi

ruby 使用 send 将值传递给数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:56 27 4
gpt4 key购买 nike

我是 ruby​​ 的新手,谁能解释一下第二行和第三行的作用?

a = [6,7,8]
a.send :[]=,0,2
a[0] + a.[](1) + a.send(:[],2)

第一行是将一个数组赋值给变量a。

我完全迷失在二线和三线。希望有人能给出一些详细的解释。

谢谢!!!

最佳答案

.send调用由符号标识的方法,将指定的任何参数传递给它。

a.send :[]=,0,2

相同
a.send(:[]=, 0, 2)

表示调用[]=数组对象上的方法,第一个参数为 0第二个参数为 2 .

所以这是 a[0] = 2 , 将数组的第一个元素设置为 2 .

执行后a.send :[]=,0,2 , a变成 [2, 7, 8] .

a.[](1)a[1] 相同

a.send(:[], 2)a.[](2) 相同这是a[2] .

所以 a[0] + a.[](1) + a.send(:[],2)等于 a[0] + a[1] + a[2]等于 2 +7 + 8等于 17 .

关于ruby 使用 send 将值传递给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526045/

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