[前][次][番号順一覧][スレッド一覧]

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 のデフォルト値の説明