種類
- インスタンスメソッド (26)
- クラス (16)
- 特異メソッド (16)
- 文書 (14)
ライブラリ
- ビルトイン (58)
クラス
- FrozenError (6)
- Hash (16)
- Module (12)
- Object (8)
キーワード
- Hash (8)
-
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 2
. 7 . 0 (6) - freeze (20)
- new (16)
- receiver (6)
検索結果
-
FrozenError (38022.0)
-
Object#freezeされたオブジェクトを変更しようとした時に発生します。
...Object#freezeされたオブジェクトを変更しようとした時に発生します。
//emlist[例][ruby]{
[1, 2, 3].freeze << 4 # FrozenError: can't modify frozen Array
//}... -
FrozenError
# receiver -> object (21107.0) -
self が発生した時のレシーバオブジェクトを返します。
...self が発生した時のレシーバオブジェクトを返します。
@raise ArgumentError レシーバが設定されていない時に発生します。
//emlist[][ruby]{
begin
[1, 2, 3].freeze << 4
rescue FrozenError => err
p err.receiver # => [1, 2, 3]
end
//}... -
Object
# freeze -> self (9036.0) -
オブジェクトを凍結(内容の変更を禁止)します。
...オブジェクトを凍結(内容の変更を禁止)します。
凍結されたオブジェクトの変更は
例外 FrozenError を発生させます。
いったん凍結されたオブジェクトを元に戻す方法はありません。
凍結されるのはオブジェクトであり......{
a1 = "foo".freeze
a1 = "bar"
p a1 #=> "bar"
a2 = "foo".freeze
a2.replace("bar") # can't modify frozen String (FrozenError)
//}
凍結を解除することはできませんが、Object#dup を使えばほぼ同じ内容の凍結されていない
オブジェクトを得ることはできます......。
//emlist[][ruby]{
a = [1].freeze
p a.frozen? #=> true
a[0] = "foo"
p a # can't modify frozen Array (FrozenError)
b = a.dup
p b #=> [1]
p b.frozen? #=> false
b[0] = "foo"
p b #=> ["foo"]
//}
@see Object#frozen?,Object#dup,Kernel.#trace_var... -
NEWS for Ruby 2
. 7 . 0 (72.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...すと
例外が発生するようになりました。
//emlist[][ruby]{
def bar
lambda
end
bar { puts "Hello" } #=> tried to create Proc object without a block (ArgumentError)
//}
==== その他の変更
* 始端なしRangeが実験的に導入されました。
caseやComparable#cl......これは deprecated です。 15575
この警告は「-W:no-deprecated」オプションで止められます。
//emlist{
def foo
class << Object.new
yield #=> warning: `yield' in class syntax will not be supported from Ruby 3.0. 15575
end
end
foo { p :ok }
//}
* 引数を転送す......"."
//}
* FrozenError
* 新規メソッド
* 変更しようとしたfreezeされたオブジェクトを返すFrozenError#receiverメソッドが
追加されました。FrozenErrorをRubyのコードで発生する時に設定できるように
FrozenError.newメソ... -
Hash (36.0)
-
ハッシュテーブル(連想配列とも呼ぶ)のクラスです。ハッシュは任意の種類のオブ ジェクト(キー)から任意の種類のオブジェクト(値)への関連づけを行うことができます。
...してある必要があります。
* Object#hash ハッシュの格納に用いられるハッシュ値の計算
* Object#eql? キーの同一性判定
破壊的操作によってキーとして与えたオブジェクトの内容が変化し、Object#hash の返す
値が変わるとハッ......に向きません。Hash#rehash を参照。
ただし、 更新不可 (Object#frozen? が true) では無い文字列をキーとして与えた場合は、文字列をコピーし、コピーを更新不可に設定 (Object#freeze) してキーとして
使用します。この為、キーとし... -
NEWS for Ruby 2
. 5 . 0 (36.0) -
NEWS for Ruby 2.5.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...追加 12508 11003
* Integer#allbits?, Integer#anybits?, Integer#nobits? を追加 12753
* Integer.sqrt を追加 13219
* Kernel
* Object#yield_self を追加 6721
* Kernel.#pp をrequireなしで使えるようにしました 14123
* Kernel.#warn :uplevel というキーワ......定できるようになりました
13919
* KeyError
* KeyError#receiver を追加 12063
* KeyError#key を追加 12063
* FrozenError
* 新しい例外クラスです 13224
=== 標準添付ライブラリの更新
* bigdecimal
* BigDecimal 1.3.4 に更新
* BigDe......{ [:then, 1, 3, 2, 3, 8] => 0,
# [:else, 2, 5, 2, 5, 8] => 2
# }
# },
# :methods => {
# [Object, :foo, 1, 0, 7, 3] => 2
# }
# }
# }
//}
* ラインカバレッジについての変更はありません。ラインカバレッ... -
Hash
. new {|hash , key| . . . } -> Hash (27.0) -
空の新しいハッシュを生成します。ブロックの評価結果がデフォルト値になりま す。設定したデフォルト値はHash#default_procで参照できます。
...ます。
h = Hash.new("foo")
p h[1] #=> "foo"
p h[1].object_id #=> 6127170
p h[1] << "bar" #=> "foobar"
p h[1] #=> "foobar"
p h[2] #=> "foobar"
p h[2].object_id #=> 6127170
p h #=> {}
# ブロックを......{|hash, key| hash[key] = "foo"}
p h[1] #=> "foo"
p h[1].object_id #=> 6126900
p h[1] << "bar" #=> "foobar"
p h[1] #=> "foobar"
p h[2] #=> "foo"
p h[2].object_id #=> 6126840
p h #=> {1=>"foobar", 2=>"foo"... -
Hash
. new(ifnone = nil) -> Hash (22.0) -
空の新しいハッシュを生成します。ifnone はキーに対 応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。
...emlist[例][ruby]{
h = Hash.new([])
p h[1] #=> []
p h[1].object_id #=> 6127150
p h[1] << "bar" #=> ["bar"]
p h[1] #=> ["bar"]
p h[2] #=> ["bar"]
p h[2].object_id #=> 6127150
p h #=> {}
h = Hash.new([].f......reeze)
h[0] += [0] #破壊的でないメソッドはOK
h[1] << 1
# エラー: can't modify frozen Array (FrozenError)
//}... -
Module
# freeze -> self (18.0) -
モジュールを凍結(内容の変更を禁止)します。
...。
凍結したモジュールにメソッドの追加など何らかの変更を加えようとした場合に
FrozenError
が発生します。
@see Object#freeze
//emlist[例][ruby]{
module Foo; end
Foo.freeze
module Foo
def foo; end
end # => FrozenError: can't modify frozen module
//}...