Это наиболее безопасный способ:
a, b, c, d = 4.times.map{'foo'}
Этот метод похож и немного короче:
a, b, c, d = (1..4).map{'foo'}
Может быть длиннее, чем использование умножителя массива или цепочкиназначение, но таким образом вы на самом деле получите разные объекты, а не разные ссылки на один и тот же объект.
Код подтверждения:
[a,b,c,d].map(&:object_id)
Если object_id
s одинаковы,ваши переменные ссылаются на один и тот же объект, и методы мутатора (например, sub!
) будут влиять на то, что видят все 4 переменные.Если они разные, вы можете изменить один из них, не влияя на другие.