This probably isn't something you should try at home, but for some reason or another I tried to create an array of methods in Ruby.

I started by defining two methods.

irb(main):001:0> def test1
irb(main):002:1>   puts "test!"
irb(main):003:1> end
=> nil
irb(main):004:0> def test2
irb(main):005:1>   puts "test2!"
irb(main):006:1> end
=> nil

The weird thing happens when you try to put it into an actual array. It seems to run both methods.

irb(main):007:0> array = [test1, test2]
test!
test2!
=> [nil, nil]

And afterwards, the array is empty.

irb(main):008:0> puts array


=> nil

Can someone explain to me why it runs the methods? Other than that the whole excercise is seriously in need of an exorcist?

Edit
Report