Thanks!!!!!!!!!!


On Wed, 23 Feb 2005 04:59:42 +0900, Brian Schröäer <ruby.brian / gmail.com> wrote:
> On Wed, 23 Feb 2005 02:22:15 +0900, Eliah Hecht <eliahhecht / gmail.com> wrote:
> > I've run into this before when (for instance) I want initialize() to
> > do one thing if it gets one arg, and a totally different thing if it
> > gets two args. AFAIK, the only way to do this is to bundle the args up
> > in an array, and to look at the size of that, which just feels clumsy.
> >
> > -Eliah.
> If the initializers are totally different, then it may make sense to
> create two new differently named constructors.
> 
> I think that makes the program better readable.
> 
> Greetings,
> 
> Brian
> >
> > On Tue, 22 Feb 2005 06:31:00 +0900, James G. Britt
> > <ruby.talk.list / gmail.com> wrote:
> > > On Tue, 22 Feb 2005 06:04:07 +0900, Panagiotis Karvounis
> > > <pkarvou / gmail.com> wrote:
> > > > Hi,
> > > >
> > > > Does Ruby support constructor overloading?
> > >
> > > No; Ruby desn't support method overloading.  But you can pass a
> > > variable number of arguments and do some logic based on what's given.
> > >
> > > One approach is to define all the args and set default values:
> > >
> > >  def initialize ( x, y="Hey!", z=nil )
> > >  end
> > >
> > > Another might be to just accept any number of args as an array:
> > >
> > >  def initialize ( *args)
> > >   # The array args now has the arguments
> > >  end
> > >
> > > Or combine them
> > >
> > >  def initialize (x=0, y="Hey!", *z=nil )
> > >  end
> > >
> > > Or use a hash as the primary argument:
> > >
> > >  def initialize (  h={} )
> > >   # Now go look for named arguments in the hash
> > >  end
> > >
> > > f = Foo.new( :user_name => "Jimbo!",  :country => "Bronx" )
> > >
> > > What are you trying to accomplish?
> > >
> > >
> > > James
> > >
> > >
> >
> >
> 
> --
> --
> Brian Schröäer
> http://ruby.brian-schroeder.de/
> 
>