Я пытаюсь выяснить, почему следующие коды не возвращают тот же результат:
КОД 1
p0 = "hello"
a = []
b = p0
1.upto(5) do |i|
b.insert(2,"B")
a.push b
end
a => ["heBBBBBllo", "heBBBBBllo", "heBBBBBllo", "heBBBBBllo", "heBBBBBllo"]
КОД 2
p0 = "hello"
a = []
b = p0
1.upto(5) do |i|
b.insert(2,"B")
a.push b.inspect
end
a => ["\"heBllo\"", "\"heBBllo\"", "\"heBBBllo\"", "\"heBBBBllo\"", "\"heBBBBBllo\""]
Мне нужен результат кода 2, но мне не нужен экранированный символ, как метод inspect.
Честно говоря, я действительно не понимаюпочему с методом inspect работает, а почему в коде 1 нет.Похоже, что в коде 1 «b» используется в качестве указателя, и каждый раз, когда он обновляется, обновляются все «связанные» -b.
Любая подсказка ??
благодарюВы заранее.