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

質問編集履歴

3

注意事項をちょっと書いた

2019/05/19 14:08

投稿

raccy
raccy

スコア21768

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  上記のような言語では、"pass by reference"(英語圏では"call by reference"とも言われる場合がある)と言われる機能があります。私が解釈する限り、これらの機能は同一のものです。そして、その日本語訳として「参照渡し」というのは特におかしくないと思います。
10
10
 
11
- さて、私が聞きたいのは、言語の機能として「参照渡し("pass by reference")」がある場合の話ではありません。言語の機能として「参照渡し」がない、少なくとも、英語の公式ドキュメントで"pass by reference"がない言語、ましてや、[Pythonのように値渡しであると公式ドキュメントに書いてある](https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions)言語において、「参照渡し」が意味する物が何であるのかと言うことです。これらを一部の人達は広義の意味での「参照渡し」と言っているようですので、以下、この質問では「広義の参照渡し」とし、前述のC++等での機能を「狭義の参照渡し」とします。つまり、聞きたいこと事は端的に言うと以下になります。
11
+ さて、私が聞きたいのは、言語の機能として「参照渡し("pass by reference")」がある場合の話ではありません。言語の機能として「参照渡し」がない、少なくとも、英語の公式ドキュメントで"pass by reference"がない言語、ましてや、[Pythonのように値渡しであると公式ドキュメントに書いてある](https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions)言語において、「参照渡し」が意味する物が何であるのかと言うことです。これらを一部の人達は広義の意味での「参照渡し」と言っているようですので、**以下、この質問では「広義の参照渡し」とし、前述のC++等での機能を「狭義の参照渡し」とします。**(そういう言葉があるわけではありませんので、ご注意ください。この質問でのみの表現です。)つまり、聞きたいこと事は端的に言うと以下になります。
12
12
 
13
13
  「広義の参照渡し」の定義は何ですか?
14
14
 

2

誤解を招くような所を修正

2019/05/19 14:08

投稿

raccy
raccy

スコア21768

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  上記のような言語では、"pass by reference"(英語圏では"call by reference"とも言われる場合がある)と言われる機能があります。私が解釈する限り、これらの機能は同一のものです。そして、その日本語訳として「参照渡し」というのは特におかしくないと思います。
10
10
 
11
- さて、私が聞きたいのは、言語の機能として「参照渡し("pass by reference")」がある場合の話ではありません。言語の機能として「参照渡し」がない、少なくとも、英語の公式ドキュメントで"pass by reference"がない言語、ましてや、[Pythonのように値渡しであると公式ドキュメントに書いてある](https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions)言語において、「参照渡し」が意味する物が何であるのかと言うことです。これらを一部の人達は広義の参照渡し」と言っているようですので、以下、この質問では「広義の参照渡し」とし、前述のC++等での機能を「狭義の参照渡し」とします。つまり、聞きたいこと事は端的に言うと以下になります。
11
+ さて、私が聞きたいのは、言語の機能として「参照渡し("pass by reference")」がある場合の話ではありません。言語の機能として「参照渡し」がない、少なくとも、英語の公式ドキュメントで"pass by reference"がない言語、ましてや、[Pythonのように値渡しであると公式ドキュメントに書いてある](https://docs.python.org/ja/3/tutorial/controlflow.html#defining-functions)言語において、「参照渡し」が意味する物が何であるのかと言うことです。これらを一部の人達は広義の意味での「参照渡し」と言っているようですので、以下、この質問では「広義の参照渡し」とし、前述のC++等での機能を「狭義の参照渡し」とします。つまり、聞きたいこと事は端的に言うと以下になります。
12
12
 
13
13
  「広義の参照渡し」の定義は何ですか?
14
14
 

1

下の方に追記

2019/05/19 00:12

投稿

raccy
raccy

スコア21768

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,10 @@
16
16
 
17
17
  なお、回答では「広義の参照渡し」と「狭義の参照渡し」を区別していただくようお願いします。「区別することが不可能である」と考えているのであれば、単に「参照渡し」と書いても良いですが、その場合は、「区別することが不可能である」理由も添えて頂くと助かります。
18
18
 
19
- 「狭義の参照渡し」がある言語やない言語のリストは、私も全ての言語に詳しいわけではありませんので、間違いがあるかも知れません。また、この言語も足して欲しいという場合もあると思います。その場合は、追記・修正依頼で指摘して頂くと助かります。
19
+ 「狭義の参照渡し」がある言語やない言語のリストは、私も全ての言語に詳しいわけではありませんので、間違いがあるかも知れません。また、この言語も足して欲しいという場合もあると思います。その場合は、追記・修正依頼で指摘して頂くと助かります。
20
+
21
+ ---
22
+
23
+ 不公平感が出ないように、私の考えの立場を言っておきます。私は[「『狭義の参照渡し』と混合するから『広義の参照渡しは』使うべきではない」](https://qiita.com/raccy/items/59a6ac6c818918dd9651)と考えています。ただ、この考えを全ての人に押しつける気はなく、C++等を学ぶことが生涯ない人は別にそれでいいのではないかと思っています。[「広義の参照渡し」の事例は集めています](https://qiita.com/raccy/items/d4c5e7995a8fc90109ee)が、私自身「広義の参照渡し」なるものの使用を前述の理由で避けていたため、どのような場合に使われる事が多いことを知っていても、その定義がどのようなものか、どのような場合に使うべきかまでは考察したことがありません。そのため、既にそれらに確固たる信念をもって使用されている方にお聞きすべく、この質問をすることにしました。
24
+
25
+ この質問で、別に「広義の参照渡し」を使うなと言っているわけではありません。どのような意味で「広義の参照渡し」を使っているのかを知りたいという純粋なる知識欲から質問しています。