独習Ruby 7章 その2

- 作者: 株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2009/06/18
- メディア: 大型本
- クリック: 10回
- この商品を含むブログ (18件) を見る
苦戦。
7.2練習問題1
初期値の指定なんだけど、そのやり方がまったくわからなかった。単純に@kindとかに入れておけばいいんだと思っていたらエラーでまくりだし…。
回答例
#encoding : utf-8 class Dog def initialize(k = "Mongrel") @kind = k end def kind @kind end def kind=(k) @kind = k end end dog = Dog.new puts dog.kind dog.kind = "Chihuahua" puts dog.kind
※これでもエラー出てるからなんか怪しい…。ただ、初期化はinitializeが担当するので、先にinitializeでMongrelを入れておく。
練習問題2
1に更に機能追加らしい。ご飯を食べてなかったら気分が悪くなって、ご飯を挙げていたら気分がごきげんになるっていう。
class Dog attr_reader :kind attr_writer :meal def initialize(k = "Mongrel") @kind = k @meal = nil end def feeling unless @meal return "Sad" else @meal = nil return "Good" end end end
kindは書き込まれないように読み込みのみの指定を行なっているところと、もし@mealがあった場合の処理の最初に@meal = nil にして中身をなくしてるんだな。
ぐぬぬ…もっと頑張らなければ…。
いつになればちゃんとコードが書ける人間になるんだろうか…