In Ruby, what is the difference between putting code in an initialize()
method rather than directly in the class body? Both appear to be executed when calling
Well, initialize
gets called by new
, whereas the class body gets evaluated on class definition/loading.
Additionally, try setting an instance variable in the class body or in initialize
. You'll notice the latter will belong to the created object, whereas the first will belong to the class instance (hence the name class instance variable).