以下のソースで、tes2のメソッドを呼び出したときはクラス変数aに値がセットされ直後にリターンするのですが、tes1を呼び出したときは、nilを代入する行でリターンされずに次の行が実行されてしまいます。
教えていただきたいのは、そうなる理由と1行でnilの代入とリターンする方法はあるのかです。
ruby のバージョンは1.9.3-p547でrbenvを使っています。
よろしくお願いします。
class Tes
def initialize()
@a = 1000
end
def tes1
@a = nil and return
@a = 10
end
def tes2
@a = 1 and return
@a = 10
end
def out
p @a
end
end
実行結果
a = Tes.new
a.out => 1000
a.tes1
a.out => 10
a.tes2
a.out => 1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/16 05:17
2015/04/16 13:25