オブジェクト指向基礎レベル

次のプログラムを実行すると何が表示されますか?

class Sample
  puts "A"
end

puts "B"
  • 1A のみ
  • 2B のみ
  • 3A のあとに B
  • 4B のあとに A

解説

Rubyではクラス定義の中のコードも、その場で実行されます。class Sample ... end が評価される際に puts "A" が実行され、その後に puts "B" が実行されるため、表示順は AB です。

「クラス定義は宣言だけで実行はされない」と誤解しやすいですが、Rubyでは class キーワードもコードを上から順に実行するだけです。この性質は prob-031 のような複雑なパターンの理解にも繋がります。

問題一覧へ戻る