タグ

ブックマーク / docs.ruby-lang.org (2)

  • Object#clone (Ruby 3.3 リファレンスマニュアル)

    clone(freeze: true) -> object[permalink][rdoc][edit] dup -> object オブジェクトの複製を作成して返します。 dup はオブジェクトの内容をコピーし、 clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。 clone や dup は浅い(shallow)コピーであることに注意してください。後述。 TrueClass, FalseClass, NilClass, Symbol, そして Numeric クラスのインスタンスなど一部のオブジェクトは複製ではなくインスタンス自身を返します。 [PARAM] freeze: false を指定すると freeze されていないコピーを返します。 [EXCEPTION] ArgumentError: TrueClass などの常に freez

    micdonalds
    micdonalds 2011/08/11
    cloneとdupの違い
  • Module#class_eval (Ruby 3.3 リファレンスマニュアル)

    module_eval(expr, fname = "(eval)", lineno = 1) -> object[permalink][rdoc][edit] module_eval {|mod| ... } -> object class_eval(expr, fname = "(eval)", lineno = 1) -> object class_eval {|mod| ... } -> object モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを評価してその結果を返します。 モジュールのコンテキストで評価するとは、実行中そのモジュールが self になるということです。つまり、そのモジュールの定義式の中にあるかのように実行されます。 ただし、ローカル変数は module_eval/class_eval の外側のスコープと共有し

    micdonalds
    micdonalds 2011/02/21
    class_evalメソッドは、ブロックをクラス定義やモジュール定義の中のコードであるように実行します。ブロックの戻り値がメソッドの戻り値になります。
  • 1