関連するキーワード
ライブラリ
- ビルトイン (12)
キーワード
- clone (3)
- dup (3)
- freeze (1)
-
initialize
_ copy (3) -
singleton
_ class (2)
検索結果
先頭5件
-
Object
# freeze -> self (19) -
オブジェクトを凍結(内容の変更を禁止)します。
...オブジェクトを凍結(内容の変更を禁止)します。
凍結されたオブジェクトの変更は
例外 TypeError を発生させます。
いったん凍結されたオブジェクトを元に戻す方法はありません。
凍結されるのはオブジェクトであり、......"foo".freeze
a1 = "bar"
p a1 #=> "bar"
a2 = "foo".freeze
a2.replace("bar")# can't modify frozen string (TypeError)
凍結を解除することはできませんが、Object#dup を使えばほぼ同じ内容の凍結されていない
オブジェクトを得ることはできます。......a = [1].freeze
p a.frozen? #=> true
a[0] = "foo"
p a # can't modify frozen array (TypeError)
b = a.dup
p b #=> [1]
p b.frozen? #=> false
b[0] = "foo"
p b #=> ["foo"]
@see Object#frozen?,Object#dup,Kernel.#trace_var... -
Object
# clone -> object (7) -
オブジェクトの複製を作成して返します。
...た完全な複製を作成します。
clone や dup は浅い(shallow)コピーであることに注意してください。後述。
@raise TypeError TrueClass, FalseClass, NilClass,
Symbol, そして Numeric クラスのインスタンスなど一部の
オブジェクトを複製しよ......) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
@see Object#initialize_copy
==== 深いコピーと浅いコピー
clone や dup はオブジェクト自身を複製するだけで、オブジェクト... -
Object
# dup -> object (7) -
オブジェクトの複製を作成して返します。
...た完全な複製を作成します。
clone や dup は浅い(shallow)コピーであることに注意してください。後述。
@raise TypeError TrueClass, FalseClass, NilClass,
Symbol, そして Numeric クラスのインスタンスなど一部の
オブジェクトを複製しよ......) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
@see Object#initialize_copy
==== 深いコピーと浅いコピー
clone や dup はオブジェクト自身を複製するだけで、オブジェクト... -
Object
# initialize _ copy(obj) -> object (7) -
(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。
...は self を obj の内容で置き換えます。ただ
し、self のインスタンス変数や特異メソッドは変化しません。
Object#clone, Object#dupの内部で使われています。
initialize_copy は、Ruby インタプリタが知り得ない情報をコピーするた
めに......す。
デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。
initialize_copy という名前のメソッドは
自動的に private に設定されます。
@raise TypeError レシーバが freeze さ......れているか、obj のクラスがレシーバ
のクラスと異なる場合に発生します。
@see Object#clone,Object#dup
以下に例として、dup や clone がこのメソッドをどのように利用しているかを示します。
obj.dup は、新たに生成したオブジェ... -
Object
# singleton _ class -> Class (7) -
レシーバの特異クラスを返します。 まだ特異クラスがなければ、新しく作成します。
...Class,
FalseClass を返します。
@raise TypeError レシーバが Fixnum か Symbol の場合に発生します。
Object.new.singleton_class #=> #<Class:#<Object:0xb7ce1e24>>
String.singleton_class #=> #<Class:String>
nil.singleton_class #=> NilClass
@see Object#class...
