Forum: Ruby How is Symbol#to_int useful? (should it exist?)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
unknown (Guest)
on 2006-03-24 11:34
(Received via mailing list)
I had a situation in a DSL like so:

  str = '0'*n

Where n in one context could be a Symbol.  If n happened to be a Symbol,
I
wanted to get an error message.  However, I found that if n is a symbol
you
could get a very long string of 0's because there is a Symbol#to_int
method
which returns a unique integer for each Symbol object (actually, it
calls
Symbol#to_i).  And so I don't get the error message I want to get
because the
symbol gets converted to an Integer automatically.  So what's the
usefulness of
the Symbol#to_int method?  I'm just undefining it like so:

  class Symbol
    undef_method :to_int
  end

....that works for my purposes, but I wonder why there is a
Symbol#to_int method in the library.  Why not just require that
Symbol#to_i be
called explicitly if that's what you want?

Phil
Eric H. (Guest)
on 2006-03-24 13:18
(Received via mailing list)
On Mar 24, 2006, at 1:33 AM, Phil T. wrote:

> which returns a unique integer for each Symbol object (actually, it
>
> ....that works for my purposes, but I wonder why there is a
> Symbol#to_int method in the library.  Why not just require that
> Symbol#to_i be
> called explicitly if that's what you want?

Symbols used to be just numbers without names attached.

--
Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com
unknown (Guest)
on 2006-03-24 13:49
(Received via mailing list)
Hi,

At Fri, 24 Mar 2006 18:33:53 +0900,
Phil T. wrote in [ruby-talk:185669]:
>   class Symbol
>     undef_method :to_int
>   end
>
> ....that works for my purposes, but I wonder why there is a
> Symbol#to_int method in the library.  Why not just require that Symbol#to_i be
> called explicitly if that's what you want?

Histrical reason.  Formerly, until Symbol class was introduced
Fixnum was used.  Symbol#to_int is deprecated and has been
purged in 1.9.

  $ ruby1.8 -ve :foo.to_int
  ruby 1.8.4 (2005-12-24) [i486-linux]
  -e:1: warning: treating Symbol as an integer
This topic is locked and can not be replied to.