to_sym <=> to_str

T

trans. (T. Onoma)

If String has #to_sym wouldn't it make sense for Symbol to have #to_str ?

T.
 
S

Sam Roberts

Quoteing (e-mail address removed), on Tue, Nov 30, 2004 at 11:17:26AM +0900:
If String has #to_sym wouldn't it make sense for Symbol to have #to_str ?

I think the relationship would be:

String#to_sym, ..#to_s, ..#to_i, #to_a

are all at the same level.

They are all methods on types that can be converted to the target, but
are not ALREADY of the type of the target of the conversion.

The next level is:

#to_str, #to_ary, #to_int all are supported by classes that ARE of that
type (in the duck-type sense).

That list could include #to_symbol... except there is nothing in ruby
that IS a symbol, only symbols are symbols.

My way of looking at it anyhow...

Though I'm guilty of writing a #to_integer, and adding it to both String
and Integer... A string can be a binary representation of a octet
sequence which has a representation as an unsigned integer. Since crypto
apis inputs and outputs are "technically" integers, usually, but in
actually always are treated as opaque blobs of data (String, in ruby), I
wanted a way to 'duck-type' String and Integer to be the same, at least
for my purposes.

Maybe its bad, but it sure is useful.

Sam
 
G

Gavin Sinclair

Quoteing (e-mail address removed), on Tue, Nov 30, 2004 at 11:17:26AM +0900:
I think the relationship would be:
String#to_sym, ..#to_s, ..#to_i, #to_a
are all at the same level.
They are all methods on types that can be converted to the target, but
are not ALREADY of the type of the target of the conversion.
The next level is:
#to_str, #to_ary, #to_int all are supported by classes that ARE of that
type (in the duck-type sense).
That list could include #to_symbol... except there is nothing in ruby
that IS a symbol, only symbols are symbols.
My way of looking at it anyhow...

I think that in a sense, a symbol IS a string -- an immutable one.
Implicit conversion via Symbol#to_str makes sense to me.

Gavin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top