ruby-reference-manual:2408
From: 5 5 <redmine@r...>
Date: Fri, 2 Jul 2010 15:17:07 +0900
Subject: [ruby-reference-manual:2408] [Bug #3517] Hash のデフォルト値の説明
Bug #3517: Hash のデフォルト値の説明 http://redmine.ruby-lang.org/issues/show/3517 起票者: 5 5 ステータス: Open, 優先度: Normal カテゴリ: doc Hash のデフォルト値について,Hash.new の実行例に # ブロックを与えると、対応する値がまだ無いキーが呼び出される度に # ブロックを評価するので、全て別のオブジェクトになります。 とあるのですが,数値オブジェクトのように同じ数値は必ず同じオブジェクトになるようなものもあるので「全て別のオブジェクトになります」とは言えません。そこで「以下の例では」を追加しては如何でしょうか。 また, # ブロックではないデフォルト値は全部同一のオブジェクトなので、 # 破壊的変更によって他の値も変更されたように見える。 とありますが,「他の値も変更されたように見える」という表現はちょっと引っかかります。 以上を合わせた修正案のパッチを以下に: Index: refm/api/src/_builtin/Hash =================================================================== --- refm/api/src/_builtin/Hash (revision 4246) +++ refm/api/src/_builtin/Hash (working copy) @@ -214,7 +214,7 @@ @raise ArgumentError ブロックと通常引数を同時に与えると発生します。 # ブロックではないデフォルト値は全部同一のオブジェクトなので、 - # 破壊的変更によって他の値も変更されたように見える。 + # 破壊的変更によって他のキーに対応する値も変わります。 h = Hash.new("foo") p h[1] #=> "foo" @@ -228,7 +228,7 @@ p h #=> {} # ブロックを与えると、対応する値がまだ無いキーが呼び出される度に - # ブロックを評価するので、全て別のオブジェクトになります。 + # ブロックを評価するので、以下の例では全て別のオブジェクトになります。 h = Hash.new {|hash, key| hash[key] = "foo"} p h[1] #=> "foo" ---------------------------------------- http://redmine.ruby-lang.org -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
-> 2408 2010-07-02 08:17 [redmine@r... ] [Bug #3517] Hash のデフォルト値の説明 2412 2010-07-02 09:57 ┗[redmine@r... ] [Bug #3517][Closed] Hash のデフォルト値の説明