(※当方プログラミングを勉強して約1ヶ月になる初心者です。)
質問をご覧いただきありがとうございます。
あるRuby入門書を勉強している中で不明点が生じたため、質問いたしました。
Rubyバージョンは ruby 2.6.5です。
不明点のあるコードは以下の通りです。
Ruby
1class Product 2 attr_reader :name, :price 3 4 def initialize(name, price) 5 @name = name 6 @price = price 7 end 8 9 def to_s 10 "name: #{name}, price: #{price}" 11 end 12end 13 14product = Product.new('A great movie', 1000) 15product.to_s #=> "name: A great movie, price: 1000"
以上のコードは継承が説明された章に書かれています。
私は、Productメソッドがto_sメソッドをオーバーライドしているのは理解しています。
しかし、to_sメソッドの中で行われている、
"name: #{name}, price: #{price}"
でなぜ引数がname,priceとなっているのでしょうか。@name,@priceではないのでしょうか。
色々調べてみたのですが、分かりませんでした。
よろしくお願いいたします。
https://ja.stackoverflow.com/questions/61877/
にも投稿されているようですが、ベストアンサーを決めたのであれば、スタック・オーバーフロー側には、解決した回答を自分で書いて承認してください。
失礼致しました。
スタックオーバーフロー側でコメントを記載しました。
回答2件
あなたの回答
tips
プレビュー