Ruby Type Conversion(kddnewton.com)
kddnewton.com
Ruby Type Conversion
https://kddnewton.com/2021/09/09/ruby-type-conversion.html
4 comments
Is that semantic difference documented anywhere? I’ve never heard of this before, would love to learn more.
The official documentation for the implicit conversion protocol (which to_str is part of, as distinct from to_s) is here:
https://ruby-doc.org/core-3.0.2/doc/implicit_conversion_rdoc...
to_s is documented here:
https://ruby-doc.org/core-3.0.2/Object.html#method-i-to_s
https://ruby-doc.org/core-3.0.2/doc/implicit_conversion_rdoc...
to_s is documented here:
https://ruby-doc.org/core-3.0.2/Object.html#method-i-to_s
[deleted]
The former is expected to be pretty imprecise. E.g. if an object can somehow he described with a string it's ok to implement to_s.
But you should only implement to_str if an object can be naturally represented as a String. E.g. if you implement a specialized string class, implementing to_str is fine, while your Person class might reasonably return a persons name from to_s but probably shouldn't implement to_str.