Передавайте аргументы по ссылке на блок с помощью оператора splat
Кажется, что аргументы копируются при использовании оператора splat для передачи аргументов в блок по ссылке.
У меня есть это:
def method
a = [1,2,3]
yield(*a)
p a
end
method {|x,y,z| z = 0}
#=> this puts and returns [1, 2, 3] (didn't modified the third argument)
Как я могу передать эти аргументы по ссылке? Кажется, это сработает, если я передам массив напрямую, но оператор splat будет гораздо более практичным, интуитивно понятным и обслуживаемым.