I'm happily devouring the new Pickaxe and early on I run across an example like:
... Integer( string_holding_number ) ...
This syntax REALLY surprised me.
1. The book has mentioned multiple times how C's abs(num) or Java's Math.abs(num) would be num.abs in Ruby.
2. Method names in Ruby start with a lowercase letter. (As an aside, this made it hard for me to even find this method. I tried ri first and got the class. Luckily, the book's excellent index got me there.)
3. The above ends up feeling like a constructor, now that I've read the process, but doesn't use constructor syntax either.
I'll confess to not being very "Duck Typing" aware, so I assume I'll understand the need for this method after I cover the chapter on that topic. In the meantime though, can I just ask where this syntax came from??? I get that it's the resulting object name (I found Array(), Float() and String() too), but it still seemed pretty radical to me.
I'm not complaining, by the way. I'm just trying to understand.
think of it like Kernel.open being shorthand for File::open - it makes dirty
scipts feel short and sweet - but it's really a class method of File. the
Integer and friend methods are better than, say String#to_i because
harp:~ > /usr/bin/ruby -v -e'p Integer("42abc")'
ruby 1.6.8 (2002-12-24) [i386-linux-gnu]
-e:1:in `Integer': invalid value for Integer: "42abc" (ArgumentError)
from -e:1
i use them all the time because of this - if fact, my post from earlier today
has the Integer() contruct in it
kind regards.
-a
···
On Sun, 3 Oct 2004, James Edward Gray II wrote:
I'll confess to not being very "Duck Typing" aware, so I assume I'll
understand the need for this method after I cover the chapter on that
topic. In the meantime though, can I just ask where this syntax came
from??? I get that it's the resulting object name (I found Array(),
Float() and String() too), but it still seemed pretty radical to me.
--
EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
A flower falls, even though we love it;
and a weed grows, even though we do not love it. --Dogen
think of it like Kernel.open being shorthand for File::open - it makes
dirty scipts feel short and sweet - but it's really a class method of File.
the Integer and friend methods are better than, say String#to_i because