Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 元素引用和赋值的Ruby方法_Ruby On Rails_Ruby_Methods_Code Documentation - Fatal编程技术网

Ruby on rails 元素引用和赋值的Ruby方法

Ruby on rails 元素引用和赋值的Ruby方法,ruby-on-rails,ruby,methods,code-documentation,Ruby On Rails,Ruby,Methods,Code Documentation,我正在阅读Ruby 2.5.0的文档,我不理解这部分关于方法的内容: 此外,还可以使用元素引用和赋值的方法 定义为:[]和[]=分别。两者都可以接受一个或多个参数, 元素引用可以不取任何值 1) 本例中的赋值方法为何以及如何赋值a=2 b=3和c=4 2) 似乎它的行为类似于元素引用的方法,所以如果是这种情况,为什么它会存在?我可以写: def [](a, b, c) puts a * b + c end obj[2, 3, 4] # prints "10" 这不会改变什么,是

我正在阅读Ruby 2.5.0的文档,我不理解这部分关于方法的内容:

此外,还可以使用元素引用和赋值的方法 定义为:[]和[]=分别。两者都可以接受一个或多个参数, 元素引用可以不取任何值

1) 本例中的赋值方法为何以及如何赋值a=2 b=3和c=4

2) 似乎它的行为类似于元素引用的方法,所以如果是这种情况,为什么它会存在?我可以写:

def [](a, b, c)
        puts a * b + c
end
obj[2, 3, 4] # prints "10"
这不会改变什么,是吗

1) 本例中的赋值方法为何以及如何赋值a=2 b=3和c=4

a
b
c
是参数,
2
3
4
是参数。参数与其他方法一样绑定到参数,因为
[]=
是一种与其他方法一样的方法

2) 似乎它的行为类似于元素引用的方法,所以如果是这种情况,为什么它会存在?我可以写:[…]


您也可以只编写
obj.foo(2,3,4)
obj.frobnite(2,3,4)
obj。好的,谢谢。我还没有读到一些方法可以用非标准的方式调用,现在我明白了为什么它会这样,还有你关于何时使用[]或[]=的解释是我遗漏的,再次感谢。
def [](a, b, c)
        puts a * b + c
end
obj[2, 3, 4] # prints "10"