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

回答編集履歴

2

微修正

2018/04/05 01:00

投稿

otn
otn

スコア86349

answer CHANGED
@@ -10,7 +10,8 @@
10
10
 
11
11
  おそらく大丈夫だと思いますが、もし`request`だけにあるキーがあれば、そのデータも結果に含まれます。そういう可能性があるなら、`merge`の前にチェックしてください。
12
12
 
13
+ #追記
13
- #エラー処理を忘れました
14
+ エラー処理を忘れました
14
15
  ```Ruby
15
16
  request = {"gold"=>"1", "silver"=>"3"} #必要メダル
16
17
  possession = {"gold"=>"5", "silver"=>"15", "bronze"=>"30"} #所持メダル

1

追記

2018/04/05 00:59

投稿

otn
otn

スコア86349

answer CHANGED
@@ -8,4 +8,21 @@
8
8
  p possession
9
9
  ```
10
10
 
11
- おそらく大丈夫だと思いますが、もし`request`だけにあるキーがあれば、そのデータも結果に含まれます。そういう可能性があるなら、`merge`の前にチェックしてください。
11
+ おそらく大丈夫だと思いますが、もし`request`だけにあるキーがあれば、そのデータも結果に含まれます。そういう可能性があるなら、`merge`の前にチェックしてください。
12
+
13
+ #エラー処理を忘れました
14
+ ```Ruby
15
+ request = {"gold"=>"1", "silver"=>"3"} #必要メダル
16
+ possession = {"gold"=>"5", "silver"=>"15", "bronze"=>"30"} #所持メダル
17
+
18
+ possession = possession.merge(request) do |key, pos, req|
19
+ rest = pos.to_i-req.to_i
20
+ if rest < 0
21
+ エラー処理
22
+ end
23
+ rest.to_s
24
+ end
25
+
26
+ p possession
27
+ ```
28
+ あと、「配列間」じゃなくて「ハッシュ間」ですね。