回答編集履歴
1
(2)についても追記しました
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
|
+
```
|