Recently I was playing with arrays and found out a weird behavior. I created a new array using Array.new.
arr = Array.new(4,"happy")
["happy", "happy", "happy", "happy"]
I appended a word into the second element in that array like shown below
arr[1] <<" Dino"
When I looked at arr, I was expecting an array with the second element having an appended word. But to my surprise array returned with all elements with the appended word.
["happy Dino", "happy Dino", "happy Dino", "happy Dino"]
How can this happen? Are we creating copies of the same string when we are creating the array? It doesn't happen if we use arr[1]= " Dino"
. Somebody can explain why this is happening?