回答編集履歴

1

(2)についても追記しました

2020/08/19 15:55

投稿

mingos
mingos

スコア4207

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### (1)について
2
+
3
+
4
+
1
5
  なかなか難しいところですが、このコードで説明できているでしょうか?
2
6
 
3
7
 
@@ -47,3 +51,55 @@
47
51
  end
48
52
 
49
53
  ```
54
+
55
+
56
+
57
+ ---
58
+
59
+
60
+
61
+ ### (2)について
62
+
63
+
64
+
65
+ `*配列`は可変長引数を受け取るメソッドに配列を引数として渡す方法です。
66
+
67
+ Hash#sliceは渡した引数のキーだけを持つ新しいHashを返します。
68
+
69
+
70
+
71
+ ```
72
+
73
+ row = {
74
+
75
+ "id" => 1,
76
+
77
+ "name" => "ユーザ1",
78
+
79
+ "age" => 10,
80
+
81
+ "hoge1" => "aaa",
82
+
83
+ "hoge2" => "bbb"
84
+
85
+ }
86
+
87
+
88
+
89
+ # 本来の渡し方=可変長引数
90
+
91
+ row.slice("id", "name", "age")
92
+
93
+ => {"id" => 1, "name" => "ユーザ1", "age" => 10}
94
+
95
+
96
+
97
+ # 配列を可変長引数として渡すために*を先頭につける
98
+
99
+ row.slice(*["id", "name", "age"])
100
+
101
+ => {"id" => 1, "name" => "ユーザ1", "age" => 10}
102
+
103
+
104
+
105
+ ```