@@ -130,7 +130,12 @@ alist = [[1,["a"]], [2,["b"]], [3,["c"]], [[4,5], ["a", "b"]]]
130130hash = Hash[alist] # => {1=>["a"], 2=>["b"], 3=>["c"], [4, 5]=>["a", "b"]}
131131#@end
132132
133+ #@until 3.4
133134--- new(ifnone = nil) -> Hash
135+ #@end
136+ #@since 3.4
137+ --- new(ifnone = nil, capacity: 0) -> Hash
138+ #@end
134139
135140空の新しいハッシュを生成します。ifnone はキーに対
136141応する値が存在しない時のデフォルト値です。設定したデフォルト値は[[m:Hash#default]]で参照できます。
@@ -152,7 +157,16 @@ p h.default #=> [0, 1]
152157
153158#@#デフォルト値の扱いには注意が必要です( [[trap:Hash]] )
154159
160+ #@since 3.4
161+ capacity を指定すると、指定した要素数を格納するのに充分なメモリをあらかじめ確保します。
162+ 要素数の多いハッシュを構築する際にメモリの再配置やハッシュテーブルの再構築が不要となるため、
163+ パフォーマンスの改善が期待できます。
164+ #@end
165+
155166@param ifnone キーに対応する値が存在しない時のデフォルト値です。
167+ #@since 3.4
168+ @param capacity 指定した要素数に相当するメモリをあらかじめ確保します。
169+ #@end
156170
157171#@samplecode 例
158172h = Hash.new([])
@@ -178,15 +192,24 @@ h[1] << 1
178192#@end
179193#@end
180194
195+ #@until 3.4
181196--- new {|hash, key| ... } -> Hash
197+ #@end
198+ #@since 3.4
199+ --- new(capacity: 0) {|hash, key| ... } -> Hash
200+ #@end
182201空の新しいハッシュを生成します。ブロックの評価結果がデフォルト値になりま
183202す。設定したデフォルト値は[[m:Hash#default_proc]]で参照できます。
184203
185204値が設定されていないハッシュ要素を参照するとその都度ブロックを
186205実行し、その結果を返します。
187206ブロックにはそのハッシュとハッシュを参照したときのキーが渡されます。
188207
189- @raise ArgumentError ブロックと通常引数を同時に与えると発生します。
208+ #@since 3.4
209+ @param capacity 指定した要素数に相当するメモリをあらかじめ確保します。
210+ #@end
211+
212+ @raise ArgumentError ifnone などの位置引数とブロックを同時に与えると発生します。
190213
191214#@samplecode 例
192215# ブロックではないデフォルト値は全部同一のオブジェクトなので、
0 commit comments