Part of my code is as follows:
class Array
def square!
self.map {|num| num ** 2}
self
end
end
When I call:
[1,2,3].square!
I expect to get [1,4,9], but instead I get [1,2,3]. Why is this the case? When I call:
[1,2,3].map {|num| num ** 2}
outside of the class method, I get the correct answer.
map
to create an array of squares, and then just throw it away and returnself
. – Mashhad