I assume you want the first two lines of you class definition to be run every time someone creates an instance of you class. If you do you should put the into a method called initialize. That will be run automatically when new is called and should solve your problem On 08/06/10 00:16, William Song wrote: > Rein Henrichs wrote: > >> On 2010-06-07 15:16:33 -0700, William Song said: >> >> >>> This will give me an error message saying the push is not defined for >>> NilClass. How should I fix this? >>> >> The error you reported has nothing to do with your Card struct. Besides >> which, your code works for me as is. >> > Sorry, I meant to put it into a function. I over-simplified it when > posted here. > > class Cards > Card = Struct.new(:suit, :number) > @cardsOnHand=[] > > def a() > @cardsOnHand.push(Card.new("S","5")) > end > end > > cards = Cards.new > cards.a() > > The above code will give an error. >