質問編集履歴

4

本文修正

2017/05/04 13:47

投稿

hanzoo
hanzoo

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,8 @@
1
- RubyのCSV::Tableクラスで作成したテーブルのカラムに値100を代入する場合、`table[:id][0] = 100`は代入不可ですが、`table[0][0] = 100`では値が代入出来るのはなぜでしょうか。
1
+ RubyのCSV::Tableクラスで作成したテーブルのカラムに値100を代入する場合、`table[:id][0] = 100`は値の代入不可ですが、`table[0][0] = 100`では値が代入出来るのはなぜでしょうか。
2
2
 
3
3
 
4
4
 
5
- 代入できることを疑問に思った理由は、[instance method CSV::Table#[] (Ruby 2.4.0)](http://rurema.clear-code.com/2.4.0/method/CSV=3a=3aTable/i/=5b=5d.html)で以下の文を見つけたためです。
5
+ 値が代入できることを疑問に思った理由は、[instance method CSV::Table#[] (Ruby 2.4.0)](http://rurema.clear-code.com/2.4.0/method/CSV=3a=3aTable/i/=5b=5d.html)で以下の文を見つけたためです。
6
-
7
-
8
-
9
- > ミックスモードでは、このメソッドは引数に行番号を指定すれば行単位で動作し、ヘッダの名前を指定すれば列単位で動作します。
10
6
 
11
7
 
12
8
 
@@ -14,21 +10,11 @@
14
10
 
15
11
 
16
12
 
17
-
18
-
19
- 上記の引用の内容を読んだ時、以下のようなCSVファイルが合った場合、
20
-
21
- * 行番号を指定とは例えば `table[0][0]`
22
-
23
- * ヘッダの名前を指定とは例えば `table[:id][0]`
13
+ 上記の引用の内容を読み、例えば、後述するCSVファイルが合った場合、`table[0][0] = 100`も`table[:id][0] = 100`のどちらを実行してもtableの値は変わらないはずではないかと考えたのですが、以下のように実行した場合、`table[0][0] = 100`を実行すると値が変わってしまいます。しかし、`table[:id][0] = 100`は値に変化はありません。
24
14
 
25
15
 
26
16
 
27
- のことで合っているとしたら、どちらも`table[0][0] = 100`も`table[:id][0] = 100`のどちらを実行してもtableの値は変わらないはずではないかと考えたのですが、
28
-
29
- 以下のように実行した場合、`table[0][0] = 100`を実行すると値が変わってしまいます。
17
+ ## 用意したCSVファイル
30
-
31
-
32
18
 
33
19
  ```csv
34
20
 

3

本文順序修正

2017/05/04 13:47

投稿

hanzoo
hanzoo

スコア28

test CHANGED
@@ -1 +1 @@
1
- RubyのCSV::Tableクラスで作成したカラム`table[0][0]`に値が代入できのはなぜでしょうか
1
+ RubyのCSV::Tableクラスで作成したカラム`table[0][0]`に値が代入され値が変わ理由
test CHANGED
@@ -14,27 +14,19 @@
14
14
 
15
15
 
16
16
 
17
- * 行番号を指定とは `table[0][0]`
18
17
 
18
+
19
+ 上記の引用の内容を読んだ時、以下のようなCSVファイルが合った場合、
20
+
21
+ * 行番号を指定とは例えば `table[0][0]`
22
+
19
- * ヘッダの名前を指定とは `table[:id][0]`
23
+ * ヘッダの名前を指定とは例えば `table[:id][0]`
20
24
 
21
25
 
22
26
 
23
- のことで合っているとしたら、`table[0][0] = 100`で値代入ようとした場合データに影響ないはずではないかと考えまし
27
+ のことで合っているとしたら、どちらも`table[0][0] = 100`も`table[:id][0] = 100`のどちら実行table値は変わらないはずではないかと考えたのですが、
24
28
 
25
-
26
-
27
-
28
-
29
- ----
30
-
31
-
32
-
33
- 以下のようにCSVファイルを用意し、`pry`を実行しました
29
+ 以下のように実行た場合、`table[0][0] = 100`を実行すると値が変わってしまいます
34
-
35
-
36
-
37
- CSVファイル
38
30
 
39
31
 
40
32
 
@@ -51,6 +43,16 @@
51
43
  2,hanzoo,35
52
44
 
53
45
  ```
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ ----
54
56
 
55
57
 
56
58
 

2

追記の修正

2017/05/04 13:41

投稿

hanzoo
hanzoo

スコア28

test CHANGED
File without changes
test CHANGED
@@ -136,8 +136,6 @@
136
136
 
137
137
  ## 追加補足
138
138
 
139
+ URLで申し訳ないのですが、元は下記URLの疑問の延長となっています。
139
140
 
140
-
141
- https://teratail.com/questions/74846
141
+ [Ruby - RubyのCSV::Tableクラスで作成したカラム`table[:id][0]`に値が代入できないのはなぜですか(74846)|teratail](https://teratail.com/questions/74846)
142
-
143
- URLで申し訳ないのですが、元は上記URLの疑問の延長です。

1

追記

2017/05/04 13:25

投稿

hanzoo
hanzoo

スコア28

test CHANGED
File without changes
test CHANGED
@@ -131,3 +131,13 @@
131
131
  => nil
132
132
 
133
133
  ```
134
+
135
+
136
+
137
+ ## 追加補足
138
+
139
+
140
+
141
+ https://teratail.com/questions/74846
142
+
143
+ URLで申し訳ないのですが、元は上記URLの疑問の延長です。