class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end def to_str @name end end class NotStringPerson attr_reader :name, :age def initialize(name, age) @name, @age = name, age end def to_s @name end end tanaka = Person.new("tanaka", 34) suzuki = NotStringPerson.new("suzuki", 44) puts "■ to_s, to_str を直接呼び出し" puts "tanaka.to_s = " + tanaka.to_s puts "tanaka.to_st
![Ruby | 文字列への明示的変換と暗黙的変換。Object#to_s , Object#to_str の使い分け - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/9bf24f5b72f7bb656268b11169341ccf224d774e/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UnVieSUyMCU3QyUyMCVFNiU5NiU4NyVFNSVBRCU5NyVFNSU4OCU5NyVFMyU4MSVCOCVFMyU4MSVBRSVFNiU5OCU4RSVFNyVBNCVCQSVFNyU5QSU4NCVFNSVBNCU4OSVFNiU4RiU5QiVFMyU4MSVBOCVFNiU5QSU5NyVFOSVCQiU5OSVFNyU5QSU4NCVFNSVBNCU4OSVFNiU4RiU5QiVFMyU4MCU4Mk9iamVjdCUyM3RvX3MlMjAlMkMlMjBPYmplY3QlMjN0b19zdHIlMjAlRTMlODElQUUlRTQlQkQlQkYlRTMlODElODQlRTUlODglODYlRTMlODElOTEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWVhNTQzOWI1OWMwZTU2MzJlMDMwMmJiMjg0ZDQ0YTVj%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdGJwZ3ImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTVlZGNiYjQxYjI3ZmQwOTY1MDdiM2IwZjMwZThiMzhl%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Ddabd5885f11c59a722afa4c598c5fd2e)