私は、Ruby のクラス定義を再度開くことができるという印象を受けました。
class C
def x
puts 'x'
end
end
class C
def y
puts 'y'
end
end
これは期待どおりにy
機能し、元のクラス定義に追加されます。
次のコードが期待どおりに機能しない理由がわかりません。
class D
x = 12
end
class D
puts x
end
これにより、NameError
例外が発生します。クラスが再開されたときに新しいローカル スコープが開始されるのはなぜですか? これは少し直感に反するようです。クラスが拡張されたときに以前のローカルスコープを継続する方法はありますか?