[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01575] Re: Ruby: constructors, new and initialise

From: Yukihiro Matsumoto <matz@...>
Date: 2000-02-25 07:56:31 UTC
List: ruby-talk #1575
The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.

Dave Thomas <Dave@Thomases.com> writes:

|> For example, `new' of Array class uses its argument to determine
|> allocation size of internal buffer.  Calling `initialize' in the
|> method is useless, because meaning of an argument is already fixed.
|
|If we take Array as an example, why can't the internal 'new' method do
|the allocation, and then call .initialize with the parameters. Agreed,
|there's no allocation that .initialize can do, but it might still be
|interested in the arguments anyway.

`initialize' trick requires two things:

  * `new' accepts arbtrary number of arguments
  * `new' does not use arguments to allocate object,
    just pass to `initialize'

Array.new does not qualify both.  Possible workaround is to allocate
default sized array at first, then resize it in Array#initialize.  
I'm not sure how serious performance overhead should be.

Since most array allocation is done by array expression, not
Array.new, performance penalty might be minimum.

							matz.

In This Thread