teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

デフォルト設定について追記

2016/10/18 15:38

投稿

cameluby
cameluby

スコア891

answer CHANGED
@@ -14,6 +14,19 @@
14
14
  #=> nil
15
15
  ```
16
16
 
17
+ ブロックを渡すと処理を行いデフォルト値をセットすることもできます
18
+ ```ruby
19
+ hash = Hash.new do |hsh, key|
20
+ hsh[key] = key.upcase
21
+ end
22
+
23
+ hash['a']
24
+ hash['b']
25
+ p hash
26
+ #=> {"a"=>"A", "b"=>2}
27
+ ```
28
+
29
+
17
30
  余談ですが、`{}`の方で定義した際にも、`default=`メソッドを使用することで、あとからデフォルト値を設定することもできます。
18
31
  ```
19
32
  a = {}

1

余談追加

2016/10/18 15:38

投稿

cameluby
cameluby

スコア891

answer CHANGED
@@ -12,4 +12,14 @@
12
12
  #=> nil
13
13
  a[:b]
14
14
  #=> nil
15
- ```
15
+ ```
16
+
17
+ 余談ですが、`{}`の方で定義した際にも、`default=`メソッドを使用することで、あとからデフォルト値を設定することもできます。
18
+ ```
19
+ a = {}
20
+ a[:a]
21
+ #=> nil
22
+ a.default = "test"
23
+ a[:a]
24
+ #=> "test"
25
+ ```