[#1215] Tk widget demo; English Tk docs?; Java 1.2 Swing — "Conrad Schneiker" <schneiker@...>
Hi,
[#1218] Trivial FAQ bug — Dave Thomas <Dave@...>
[#1229] A vote for old behavior — Dave Thomas <Dave@...>
[#1232] Any FAQ requests, updates, ... — Dave Thomas <Dave@...>
[#1233] Singleton classes — Dave Thomas <Dave@...>
[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>
[#1307] Ruby/GTK 0.23 released — Hiroshi IGARASHI <igarashi@...>
Hi all,
From: Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp>
From: "Conrad Schneiker" <schneiker@jump.net>
On Fri, Feb 18, 2000 at 09:37:27PM -0500, Yasushi Shoji wrote:
[#1322] FAQ: Ruby acronyms — "Conrad Schneiker" <schneiker@...>
In the spirit of TABWTDI (there are better ways to do it), I'd like to
[#1341] Vim syntax file — Mirko Nasato <mirko.nasato@...>
Hi,
On Mon, Feb 14, 2000 at 05:44:39PM +0100, Mirko Nasato wrote:
[#1354] Say hi (bis) — Pixel <pixel_@...>
hi all,
[#1355] nice sample for functional stuff — Pixel <pixel_@...>
what about having map in standard (and map_index too)?
[#1373] Ruby Language Reference Manual--Glossary — "Conrad Schneiker" <schneiker@...>
I was going to print the Ruby Language Reference Manual when I noticed that
[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>
Conrad writes:
[#1379] Re: Yield — Andrew Hunt <andy@...>
>From: "Conrad Schneiker" <schneiker@jump.net>
[#1384] Re: Say Hi — mengx@...
My suggestion was to try to find a more comfortable method name (to me, and
[#1392] Re: Some Questions - Parameterised Types / Invariants — Andrew Hunt <andy@...>
>1. Parameterised Types / Template Classes
[#1398] Bignum aset — Andrew Hunt <Andy@...>
[#1488] Discussion happens on news.groups — Clemens Hintze <c.hintze@...>
Hi,
[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>
Hello Ian,
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.))
From: "Conrad Schneiker" <schneiker@jump.net>
[#1528] ruby <=> python — Quinn Dunkan <quinn@...>
Hello! I'm new to ruby-talk, and mostly new to ruby. I'm making a document
[#1551] Ruby thread scheduling buglet — Ian Main <imain@...>
[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1591] Certain char's not recognized by "." in regex? — Wes Nakamura <wknaka@...>
[#1592] Race condition in Singleton — Dave Thomas <Dave@...>
[ruby-talk:01570] Re: Ruby: constructors, new and initialise
The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.
Yukihiro Matsumoto <matz@netlab.co.jp> writes:
> |> some classes do not invoke `initialize' in their `new'
> |> method. They are Array, Regexp, IO (and its subclasses),
> |> Hash, String, Thread, Class, and Module.
> |> # I'm feeling something left.
,,,
> * these classes define their own version of `new' rather than using
> generic `new' defined in Object class. these `new' methods
> use argument to allocate object, before calling `initialize' if any.
>
> The latter is more significant. The `initialize' trick works well
> only if the arguments are used to initialize, not to allocate object.
>
> 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.
Say I wanted a subclass of array that stored only uppercase
strings. If .initialize was called, I could write it as:
class UpperArray < Array
def initialize(*args)
if args.length > 1 and String === args[1].type
each do |v| v.upcase! end
end
end
def [](*args) ...
end
end
This seems pretty natural. Even though the meaning of the argument is
fixed by 'new', we can still use it to add value.
Is the performance overhead significant?
Regards
Dave