ただいま、Rubyの試験にトライしようと、勉強しています。
https://www.school.ctc-g.co.jp/ruby/training_ruby_gold_41_50.html
CTC教育サービスさんの問題を解いていて、わからないので教えてください
この、[コード2]で、モジュールMの中のメソッドを使ってエラーとならないように、
[コード1]と同じ結果(foo)になるようにするには、
Foo.new.foo のところをどのように直せばよろしいのでしょうか?
教えてください。よろしくお願い致します。
問41.以下の2つのコードの実行結果の出力として正しいものを選択してください。
[コード1]
class Foo
Const = "foo"
def foo
puts Const
end
end
Foo.new.foo
[コード2]
module M
def foo
puts Const
end
end
class Foo
Const = "foo"
include M
end
Foo.new.foo
1. [コード1]
foo
[コード2]
foo
2. [コード1]
例外が発生する
[コード2]
foo
3. [コード1]
foo
[コード2]
例外が発生する
4. [コード1]
例外が発生する
[コード2]
例外が発生する
問41の解答と解説
解答:3
解説 コード1のfooメソッドはクラス内で定義した定数Constを参照しておりますので、エラーになりません。 コード2のfooメソッドはモジュール内で定義した定数Constを参照してしまい、未定義なのでエラーになります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。