Hi,
In message "Re: deciding between ruby and python"
on 04/04/05, Dave Benjamin <ramen / lackingtalent.com> writes:
|I'd really like to understand what you mean, here. In your first sentence,
|did you mean to say "I expect the object to be a duck *that* quacks like
|strings?" If so, what does it mean to quack like a string? If not, what were
|you really trying to say?
Suppose you understand "duck typing".
Defining "to_str" is a way to make an object to behave like string
_argument_. Some C defined built in methods require String structure
inside. This is against duck typing principle, but need to be so for
performance. Those methods call "to_str" before processing string
arguments, as work around. When you want to implement an object that
behave exactly like strings, you need to define "to_str" method that
returns string representation (i.e. one with String structure) along
with other methods in String class.
In summary, "to_str" should always be part of string method set (since
it's a performance hack). Emphasizing "to_str" alone too much is not
encouraged.
matz.