るりまサーチ

最速Rubyリファレンスマニュアル検索!
254件ヒット [1-100件を表示] (0.139秒)

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

クラス

オブジェクト

キーワード

検索結果

<< 1 2 3 > >>

Object#freeze -> self (32233.0)

オブジェクトを凍結(内容の変更を禁止)します。

...untimeError を発生させます。
いったん凍結されたオブジェクトを元に戻す方法はありません。

凍結されるのはオブジェクトであり、変数ではありません。代入などで変数の指す
オブジェクトが変化してしまうことは freeze...
...ません。 freeze が防ぐのは、
`破壊的な操作' と呼ばれるもの一般です。変数への参照自体を凍結したい
場合は、グローバル変数なら Kernel.#trace_var が使えます。

@return self を返します。

//emlist[][ruby]{
a1 = "foo".freeze
a1 = "bar"
p a...
..."foo".freeze
a2.replace("bar") # can't modify frozen String (RuntimeError)
//}

凍結を解除することはできませんが、Object#dup を使えばほぼ同じ内容の凍結されていない
オブジェクトを得ることはできます。

//emlist[][ruby]{
a = [1].freeze
p a.frozen?...
...FrozenError を発生させます。
いったん凍結されたオブジェクトを元に戻す方法はありません。

凍結されるのはオブジェクトであり、変数ではありません。代入などで変数の指す
オブジェクトが変化してしまうことは freeze...
..."foo".freeze
a2.replace("bar") # can't modify frozen String (FrozenError)
//}

凍結を解除することはできませんが、Object#dup を使えばほぼ同じ内容の凍結されていない
オブジェクトを得ることはできます。

//emlist[][ruby]{
a = [1].freeze
p a.frozen?...

ENV.freeze -> () (32219.0)

ENV.freeze は環境変数の変更を禁止できないため、TypeErrorを発生させます。

...ENV.freeze は環境変数の変更を禁止できないため、TypeErrorを発生させます。...

Module#freeze -> self (32215.0)

モジュールを凍結(内容の変更を禁止)します。

...

凍結したモジュールにメソッドの追加など何らかの変更を加えようとした場合に
RuntimeError
が発生します。

@see Object#freeze

//emlist[例][ruby]{
module Foo; end
Foo.freeze

module Foo
def foo; end
e
nd # => RuntimeError: can't modify frozen module
//}...
...

凍結したモジュールにメソッドの追加など何らかの変更を加えようとした場合に
FrozenError
が発生します。

@see Object#freeze

//emlist[例][ruby]{
module Foo; end
Foo.freeze

module Foo
def foo; end
e
nd # => FrozenError: can't modify frozen module
//}...

Object#clone(freeze: true) -> object (14239.0)

オブジェクトの複製を作成して返します。

...ピーし、
clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。

clone や dup は浅い(shallow)コピーであることに注意してください。後述。

TrueClass, FalseClass, NilClass, Symbol, そして Numeric クラスの...
...す。

@param freeze false を指定すると freeze されていないコピーを返します。
@raise ArgumentError TrueClass などの常に freeze されているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。

//emlist[][ruby]{
o...
...ng"
obj.taint
def obj.fuga
e
nd
obj.freeze

p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> true
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga)) #=> true

obj_c = obj.clone

p(obj.equal?(obj_c)) #=> false
p(obj == obj_c...
...ng"
obj.taint
def obj.fuga
e
nd
obj.freeze

p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> false
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga)) #=> true

obj_c = obj.clone

p(obj.equal?(obj_c)) #=> false
p(obj == obj_...
...tring"
def obj.fuga
e
nd
obj.freeze

p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga)) #=> true

obj_c = obj.clone

p(obj.equal?(obj_c)) #=> false
p(obj == obj_c) #=> true
p(obj_c.frozen?)...

FrozenError#receiver -> object (14208.0)

self が発生した時のレシーバオブジェクトを返します。

...self が発生した時のレシーバオブジェクトを返します。

@raise ArgumentError レシーバが設定されていない時に発生します。

//emlist[][ruby]{
begin
[1, 2, 3].freeze << 4
rescue FrozenError => err
p err.receiver # => [1, 2, 3]
e
nd
//}...

絞り込み条件を変える

ENV.clone(freeze: true) -> object (14203.0)

ENV オブジェクトの複製を作成して返します。

...ENV オブジェクトの複製を作成して返します。

E
NV は OS のプロセス全体で共有される環境変数を操作するラッパーオブジェクトなので、複製は有用ではありません。
そのため、3.1 からは複製で環境変数を操作するときに depr...
...ecated 警告がでます。

テスト実行中に環境変数を退避する用途には ENV.to_h を使用してください。

//emlist[][ruby]{
saved_env = ENV.to_h
# (テストなど)
E
NV.replace(saved_env)
//}

@see Object#clone...
...ecated 警告がでます。

テスト実行中に環境変数を退避する用途には ENV.to_h を使用してください。

//emlist[][ruby]{
saved_env = ENV.to_h
# (テストなど)
E
NV.replace(saved_env)
//}

@see Object#clone
@see ENV.dup...

Hash.new(ifnone = nil) -> Hash (14114.0)

空の新しいハッシュを生成します。ifnone はキーに対 応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。

...す。ifnone はキーに対
応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。

ifnoneを省略した Hash.new は {} と同じです。

デフォルト値として、毎回同一のオブジェクトifnoneを返し...
...も影響します。

//emlist[][ruby]{
h = Hash.new([])
h[0] << 0
h[1] << 1
p h.default #=> [0, 1]
//}

これを避けるには、破壊的でないメソッドで再代入する必要が有ります。
また、このようなミスを防ぐためにもifnone freeze して破壊的操作を...
...禁止しておくのが無難です。


@param ifnone キーに対応する値が存在しない時のデフォルト値です。

//emlist[例][ruby]{
h = Hash.new([])

p h[1] #=> []
p h[1].object_id #=> 6127150
p h[1] << "bar" #=> ["bar"]
p h[1] #...

Object#frozen? -> bool (14114.0)

オブジェクトが凍結(内容の変更を禁止)されているときに真を返します。

...オブジェクトが凍結(内容の変更を禁止)されているときに真を返します。

//emlist[][ruby]{
obj = "someone"
p obj.frozen? #=> false
obj.freeze
p obj.frozen? #=> true
//}

@see Object#freeze...

Object#initialize_copy(obj) -> object (14114.0)

(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。

...期化メソッド。

このメソッドは self を obj の内容で置き換えます。ただ
し、self のインスタンス変数や特異メソッドは変化しません。
Object#clone, Object#dupの内部で使われています。

initialize_copy は、Ruby インタプリタが知り...
...itialize_copy でコピーするよう定義しておくことで、dup や clone
を再定義する必要がなくなります。

デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。

initialize_copy...
...ッドは
自動的に private に設定されます。

@raise TypeError レシーバが freeze されているか、obj のクラスがレシーバ
のクラスと異なる場合に発生します。
@see Object#clone,Object#dup

以下に例として、dup や clone がこのメソッドをど...

ThreadGroup#enclosed? -> bool (14114.0)

自身が enclose されているなら true を返します。そうでないなら false を返します。デフォルトは false です。

... enclose されているなら true を返します。そうでないなら false を返します。デフォルトは false です。

freeze
された ThreadGroup には Thread の追加/削除ができませんが、enclosed? は false を返します。

thg = ThreadGroup.new
p thg.enclo...
...sed? # => false
thg.enclose
p thg.enclosed? # => true

thg = ThreadGroup.new
p thg.enclosed? # => false
thg.freeze
p thg.enclosed? # => false

@see ThreadGroup#enclose...

絞り込み条件を変える

Symbol#name -> String (14108.0)

シンボルに対応する文字列を返します。

...シンボルに対応する文字列を返します。

Symbol#to_sと違って freeze された文字列を返します。

//emlist[][ruby]{
p :fred.name # => "fred"
p :fred.name.frozen? # => true
p :fred.to_s # => "fred"
p :fred.to_s.frozen? # => false
//}

@see Symbol#to_s...
<< 1 2 3 > >>