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

回答編集履歴

4

修正

2019/04/24 09:47

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  関連するものとして、オブジェクト渡しは「共有される」という現象が名前に入らず、それこそ「オブジェクトの値渡し(そういうものがあれば)」と区別する手段がないため論外。共有オブジェクト渡しは動作の説明としてはいいと思いますが、冗長なのでできれば使いたくない枠。
22
22
 
23
23
  ###### 参照渡しについて
24
- これで説明している書籍等もあり、一定の市民権を得ている以上、無視するべきではないと思います。
24
+ これで説明している書籍等もあると思いますし(出典を示せないのでとあえずこういう書き方にしておきます)、一定の市民権を得ている以上、無視するべきではないと思います。
25
25
 
26
26
  このトピックで問題にしている「参照渡し」とC++やC#, PHP等で使われる「参照渡し」は同綴異義語とみなし、一般的な場面では文脈から判断することにします。仕様書、ドキュメント、マニュアル、初心者向け解説など取り違えが許されない場合、適切な注意書き等を付記することにします。
27
27
 

3

修正

2019/04/24 09:46

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -23,7 +23,7 @@
23
23
  ###### 参照渡しについて
24
24
  これで説明している書籍等もあり、一定の市民権を得ている以上、無視するべきではないと思います。
25
25
 
26
- このトピックで問題にしている「参照渡し」とPHP等で使われるエイリアスによる「参照渡し」は同綴異義語とみなし、一般的な場面では文脈から判断することにします。仕様書、ドキュメント、マニュアル、初心者向け解説など取り違えが許されない場合、適切な注意書き等を付記することにします。
26
+ このトピックで問題にしている「参照渡し」とC++やC#, PHP等で使われる「参照渡し」は同綴異義語とみなし、一般的な場面では文脈から判断することにします。仕様書、ドキュメント、マニュアル、初心者向け解説など取り違えが許されない場合、適切な注意書き等を付記することにします。
27
27
 
28
28
  > C#のref付きの第二と参照型の第三の両方の渡し方もある言語では、どのように区別するのかを併せて説明ください。
29
29
 

2

修正

2019/04/24 09:46

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -39,7 +39,7 @@
39
39
 
40
40
  - そもそも「参照の値」が言語仕様上で定義されない言語では使うべきではない。アドレス渡し、ポインタ渡しと同じ。
41
41
  - 「参照」と「値渡し」への理解を前提知識として要求する。pythonをはじめてのプログラミング言語として学び始めた小学生にどう説明するか? 「共有渡し」なら「共有されるんだよ」と説明できます(「オブジェクトを名前に束縛する」は先に、「関数」「コールスタック」は同時に理解させておく必要があります・・・)。
42
- - 「参照の値を渡す」というのは動作や実装の説明であり、「値渡し」や「参照渡し」と同レイヤの説明ではない(「値渡し」と言う代わりに「メモリの値をコールスタックにpushして・・・」と説明するのと同じです)。そもそも論として、参照の値を渡さない実装で同じものを実現していたときどうするつもりなのか。
42
+ - 「参照の値を渡す」というのは動作や実装の説明であり、「値渡し」や「参照渡し」と同レイヤの説明ではない(「値渡し」と言う代わりに「値をコールスタックにpushして・・・」と説明するのと同じです)。そもそも論として、参照の値を渡さない実装で同じものを実現していたときどうするつもりなのか。
43
43
  - 市民権を得ていない。おそらく共有渡しと同程度に通じない。
44
44
  - しかも長くてダサい。
45
45
 

1

追記

2019/04/23 19:17

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  ###### アドレス渡し, ポインタ渡しについて
35
35
  アドレス、ポインタが言語仕様上で規定されている言語でのみ使いたいと思います。
36
36
 
37
- ###### 参照の値渡し
37
+ ###### 参照の値渡しについて
38
38
  たくさん問題があり、「参照渡し」とどっこいどっこい程度だと思っています。
39
39
 
40
40
  - そもそも「参照の値」が言語仕様上で定義されない言語では使うべきではない。アドレス渡し、ポインタ渡しと同じ。