Ruby on rails 元素引用和赋值的Ruby方法
我正在阅读Ruby 2.5.0的文档,我不理解这部分关于方法的内容: 此外,还可以使用元素引用和赋值的方法 定义为:[]和[]=分别。两者都可以接受一个或多个参数, 元素引用可以不取任何值 1) 本例中的赋值方法为何以及如何赋值a=2 b=3和c=4 2) 似乎它的行为类似于元素引用的方法,所以如果是这种情况,为什么它会存在?我可以写: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" 这不会改变什么,是
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"