Эта версия вашего целого числа bla
:
def bla x
x += 1
end
a = 1
bla a
ближе к вашему массиву.Но даже этот не изменится a
, потому что Fixnum
экземпляры неизменны;если бы Fixnum
экземпляров не были неизменяемыми, у вас были бы люди, меняющие значение 1, и это просто создало бы большой беспорядок.
Эта версия вашего массива bla
:
def bla x
x + [1]
end
a = [1]
bla a
ближе к вашему целому числу.Этот массив-бла оставит a
неизменным.
Ваш массив-бла изменит a
, поскольку x << 1
совпадает с x.push(1)
, а метод push
изменяет массив.x
, который видит ваш массив, является ссылкой, указывающей на тот же объект, что и a
.