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

回答編集履歴

2

修正

2019/10/10 22:24

投稿

退会済みユーザー
answer CHANGED
@@ -1,15 +1,9 @@
1
1
  ```Ruby
2
- class MyArray < Array
3
- def <<(value)
4
- self.push(value)
5
- end
6
- end
7
-
8
2
  1.upto(100) do |i|
9
3
  define_method("array#{i}") do
10
4
  res = self.instance_variable_get("@array#{i}")
11
5
  if res.nil?
12
- self.instance_variable_set("@array#{i}", MyArray.new)
6
+ self.instance_variable_set("@array#{i}", [])
13
7
  end
14
8
  self.instance_variable_get("@array#{i}")
15
9
  end
@@ -18,12 +12,10 @@
18
12
  end
19
13
  end
20
14
 
21
- array21 = [1, 2, 3]
15
+ p array21
22
- array61 = [4, 5, 6]
16
+ p array61
23
- (7..9).each { |i| array71 << i }
17
+ (1..3).each { |e| array21 << e }
24
- p array21 + array61
18
+ (4..6).each { |e| array61 << e }
25
19
  p array21.zip(array61).to_h
26
- p array61 << array71
27
20
 
28
-
29
21
  ```

1

修正

2019/10/10 22:24

投稿

退会済みユーザー
answer CHANGED
@@ -1,8 +1,17 @@
1
1
  ```Ruby
2
+ class MyArray < Array
3
+ def <<(value)
4
+ self.push(value)
5
+ end
6
+ end
7
+
2
8
  1.upto(100) do |i|
3
9
  define_method("array#{i}") do
4
10
  res = self.instance_variable_get("@array#{i}")
5
- res.nil? ? [] : res
11
+ if res.nil?
12
+ self.instance_variable_set("@array#{i}", MyArray.new)
13
+ end
14
+ self.instance_variable_get("@array#{i}")
6
15
  end
7
16
  define_method("array#{i}=") do |value|
8
17
  self.instance_variable_set("@array#{i}", value)
@@ -11,8 +20,10 @@
11
20
 
12
21
  array21 = [1, 2, 3]
13
22
  array61 = [4, 5, 6]
14
- p array21 + array61 # array << 1 はできない
23
+ (7..9).each { |i| array71 << i }
24
+ p array21 + array61
15
25
  p array21.zip(array61).to_h
26
+ p array61 << array71
16
27
 
17
28
 
18
29
  ```