タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

instance_evalに関するtakaesuのブックマーク (1)

  • class_evalとinstance_eval - AnyType

    以下のようなクラスとインスタンスについて考えていく。 Person = Class.new # Personクラスの作成(Classクラスのインスタンスの作成) naoty = Person.new # Personクラスのインスタンスの作成 今回はclass_evalとinstance_evalについて。どっちとも引数のブロック内の文字列をRubyコードとして評価して実行するのだが、実行するコンテキストが異なる。 Person.class_eval do def greet p 'Hello, my world!' end end naoty.greet #=> "Hello, my world!" class_evalはレシーバ(=Person)をクラスとしてブロック内を実行する。クラス内で実行されたのと同じ。 この場合、Personをクラスとしてgreetを定義しているので、gree

    class_evalとinstance_eval - AnyType
  • 1