回答編集履歴

9

文章の修正

2020/07/31 17:32

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- `me`、`me_1`、`me_2` や `cat`、`cat_1` が同一の人物を指しているのであれば `Person`や`Pet`はミュータブルであるべきではないでしょうか。
49
+ `me`、`me_1`、`me_2` や `cat`、`cat_1` が同一の人物を指しているのであれば `Person`や`Pet`はミュータブルである方が都合が良いのではないでしょうか。
50
50
 
51
51
 
52
52
 
@@ -60,8 +60,8 @@
60
60
 
61
61
 
62
62
 
63
- 明日から我々が使っている100円玉の価値が50円になったら困りますよね。硬貨に 100 と書いてあるはずなのに金銭的価値は 50 円です。私なら困ります。半額で自動販売機でジュースが買えたり、アーケードゲームが遊べて一部の人たちはラッキーかもしれませんが、それ商売している側の人たちは確実にりますね。
63
+ 明日から我々が使っている100円玉の価値が50円になったら困りますよね。硬貨に 100 と書いてあるはずなのに金銭的価値は 50 円です。私なら困ります。半額で自動販売機でジュースが買えたり、アーケードゲームが遊べて一部の人たちはラッキーかもしれませんが、それ等で商売している人たちはきっとるでしょうね。
64
64
 
65
65
 
66
66
 
67
- cn202kさんも困ると感じたなら、それはイミュータブルであるべき
67
+ ですから、硬貨をオブジェクトとして表現する際はイミュータブルである方が都合が良いしょう

8

文章の修正

2020/07/31 17:32

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- `me`、`me_1`、`me_2` が同一の人物を指しているのであれば `Person`や`Pet`はミュータブルであるべきではないでしょうか。
49
+ `me`、`me_1`、`me_2` や `cat`、`cat_1` が同一の人物を指しているのであれば `Person`や`Pet`はミュータブルであるべきではないでしょうか。
50
50
 
51
51
 
52
52
 

7

文章の修正

2020/07/31 17:29

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- ついてはイミュータブルにすることをやめて、 `me.age = 40;` で良いでしょう
27
+ 対する回答イミュータブルにすることをやめて、 `me.age = 40;`と書く」
28
28
 
29
29
 
30
30
 

6

文章の修正

2020/07/31 17:22

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- その山田さんをコピーをしていては**姓名と年齢と遺伝子の1部がたまたま一致した山田さん**を生成しているようで、違和感を感じます。生成された `me`、`me_1`、`me_2`は それぞれ **別人** だと思います。ペットについても同です。
45
+ その山田さんをコピーをしていては**姓名と年齢と遺伝子の1部がたまたま一致した別人の山田さん**を生成しているようで、違和感を感じます。生成された `me`、`me_1`、`me_2`は それぞれ **別人** だと思います。`cat`、`cat_1`についても同です。
46
46
 
47
47
 
48
48
 

5

誤記

2020/07/31 17:20

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- `me`、`me_1`、`me_2` が同一の人物を指しているのであれば `Human`や`Pet`はミュータブルであるべきではないでしょうか。
49
+ `me`、`me_1`、`me_2` が同一の人物を指しているのであれば `Person`や`Pet`はミュータブルであるべきではないでしょうか。
50
50
 
51
51
 
52
52
 

4

文章の修正

2020/07/31 17:18

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -12,7 +12,25 @@
12
12
 
13
13
  ケースバイケースです。今回の`Person`と`Pet`の関係であれば相互参照をして良いと思います。
14
14
 
15
+ しかし、イミュータブルである必要性はありません。
16
+
17
+
18
+
19
+ ですから、
20
+
21
+
22
+
23
+ > イミュータブルなオブジェクト同士が相互参照している場合はどのように対処すれば良いのか?
24
+
25
+
26
+
15
- しかし、イミュータブルであ必要性はありません。`me.age = 40;` で良いでしょう。
27
+ についてはイミュータブルにすことをやめて、 `me.age = 40;` で良いでしょう。
28
+
29
+
30
+
31
+ > me.copyWith(pets: me.pets + cat);
32
+
33
+ > me_1.copyWith(age: 40);
16
34
 
17
35
 
18
36
 

3

文章の修正

2020/07/31 17:18

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -24,22 +24,26 @@
24
24
 
25
25
 
26
26
 
27
- その山田さんをコピーをしていては**姓名と年齢と遺伝子の1部がたまたま一致した山田さん**を生成しているようで、違和感を感じます。れは **実質的な別人** だと思います。ペットについても同様です。
27
+ その山田さんをコピーをしていては**姓名と年齢と遺伝子の1部がたまたま一致した山田さん**を生成しているようで、違和感を感じます。生成さた `me`、`me_1`、`me_2`それぞれ **別人** だと思います。ペットについても同様です。
28
28
 
29
29
 
30
30
 
31
- ですから、`Human`や`Pet`はミュータブルであるべきではないでしょうか。
31
+ `me`、`me_1`、`me_2` が同一の人物を指しているのであれば `Human`や`Pet`はミュータブルであるべきではないでしょうか。
32
32
 
33
33
 
34
34
 
35
35
  ---
36
36
 
37
- 現実世界のオブジェクトでたとえ話をするのは混乱を招くような気がしますが…、イミュータブルであるべきオブジェクトの例を挙げるなら **硬貨** でしょうか。
37
+ 現実世界のオブジェクトでたとえ話をするのは混乱を招くような気がしますが…、イミュータブルであるべきオブジェクトの例を1つ挙げるなら **硬貨** でしょうか。
38
38
 
39
39
 
40
40
 
41
- 硬貨の金銭的価値(フィールドの値)は最初(インスタンス生成時)に決めると思いますが、途中でその価値が変化すると困る場合があります。うより困ります。
41
+ 硬貨の金銭的価値(フィールドの値)は最初(インスタンス生成時)に決めると思いますが、途中でその価値が変化すると困る場合があります。いえ、おそらく困ります。
42
42
 
43
43
 
44
44
 
45
- 明日から我々が使っている100円玉の価値がもし50円になったら困りますよね。100と書いてあるのに価値は50円です。私困ります。もしcn202kさも困ると感じたなら、それをイミュータブルしょう
45
+ 明日から我々が使っている100円玉の価値が50円になったら困りますよね。硬貨に 100 と書いてあるはずなのに金銭的価値は 50 円です。私なら困ります。半額で自動販売機でジュースが買えたり、アーケードゲームが遊べて一部の人たちはラッキーかもしれませ、それを商売している側の人たちは確実困りすね
46
+
47
+
48
+
49
+ cn202kさんも困ると感じたなら、それはイミュータブルであるべきです。

2

文章の修正

2020/07/31 17:16

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- この時点でイミュータブルをやめます。
5
+ **この時点でイミュータブルをやめます。**
6
6
 
7
7
 
8
8
 
@@ -20,20 +20,26 @@
20
20
 
21
21
 
22
22
 
23
+ 今回のケースでは、姓名が変わろうが歳を取ろうがその山田さんは同一人物でしょう。
24
+
25
+
26
+
27
+ その山田さんをコピーをしていては**姓名と年齢と遺伝子の1部がたまたま一致した山田さん**を生成しているようで、違和感を感じます。それは **実質的な別人** だと思います。ペットについても同様です。
28
+
29
+
30
+
31
+ ですから、`Human`や`Pet`はミュータブルであるべきではないでしょうか。
32
+
33
+
34
+
23
35
  ---
24
36
 
25
37
  現実世界のオブジェクトでたとえ話をするのは混乱を招くような気がしますが…、イミュータブルであるべきオブジェクトの例を挙げるなら **硬貨** でしょうか。
26
38
 
27
39
 
28
40
 
29
- 硬貨の金銭的価値(フィールドの値)は最初(インスタンス生成時)に定すると思いますが、途中でその価値が変化すると困る場合があります。そのうな時にイミュータブルなオブジェクトを利用します。
41
+ 硬貨の金銭的価値(フィールドの値)は最初(インスタンス生成時)に決ると思いますが、途中でその価値が変化すると困る場合があります。というり困ります。
30
42
 
31
43
 
32
44
 
33
- 今回のケースでは、きっと姓名が変わろうが歳を取ろうがその山田さんは同一人物でしょう。
34
-
35
- その山田さんをコピーをしていては姓名と年齢と遺伝子1部がたま一致た別人の山田さんを生成していようで違和感感じペットも同様です。
45
+ 明日から我々が使っている100円玉価値もし50円になっら困りすよね。100と書いてあるのに価値は50円です。私は困りす。もcn202kさんも困と感じたならそれイミュータブルにししょう
36
-
37
-
38
-
39
- ですから、`Human`や`Pet`はイミュータブルの方が分かりやすいのではないでしょうか。

1

文章の修正

2020/07/31 17:10

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- `me`、`me_1`、`me_2`のように変更のたびインスタンスのコピーを生成していてはまるで遺伝子が完全にの人間を生成しているようです。
19
+ `me`、`me_1`、`me_2`のように変更のたびインスタンスのコピーを生成していてはまるでたまたま遺伝子が同コピー人間を生成しているようです。
20
20
 
21
21
 
22
22