「戻り値」か「返り値」か


ずっと気になっていたことがある!

「戻り値」か「返り値」か!

「へなちょこ」と「へっぽこ」の違いみたいでどうでもいいといえばどうでもいいのですが、ちょっと調べてみました。

「返り値」と見るたびに「返り血」みたいでどうも不穏な感じで好きじゃなくて気になってしまう。
(武士が切られて血が、ブシャーッ!みたいな映像が勝手に脳内に浮かんじゃうんですよ)

ええ、調べたところで、何の役にも立ちませんがね。
(とりあえず、調べるってのはエンジニアの習慣てことで)

まずは、Google Trend

過去12月間

※追記 コメントで「復帰値」という言い方もあるということで、12か月間のみですが追加してみました。

過去5年間

2004-現在

なんだ、戻り値がずっと優勢じゃん、なら話はここで終わり?

しかし、他に調べたこともあるので書いておきます。

翻訳としては、

やっぱり「戻り値」じゃん
下の「返却値」がちょっと気になりますが

引数はどうなのか

英語では、Parameter
Google翻訳では、「パラメータ」と出ます、オイ!

検索するとWikipediaが出てきて、でもこれ数学的な説明だけど

媒介変数

と、あー、なるほどね。これならまーって思いました。
何が言いたいのかっていうと

どちらが主語なのよ

って、以前、講師をしていた時に、なんも考えずに引数、戻り値って教えていてたのですが、どっちのことを言ってるのか分からなくなると言われて・・・え??

つまり、「呼び出し元」からみて言ってるのか、「呼び出し先」から見て言ってるのかと

main() {
  int i = sub(10); // 戻り値iは、mainが主語?
}

int sub(int i) { // ← 引数iは、subが主語?
 return 1;
}

引数っていうとsub()の方が主役になってて、戻り値だとmain()が主役じゃね?
みたいなこと言われて、なるほどーと思いました。

正確に表現するとすれば、main() から見れば、
parameterは、渡し値
return valueは、戻り値(返り値)

sub()から見れば、
parameterは、は引数(渡り値?)
return valueは、戻し値、返し値

かなぁ?なんて話してたのですが、あまりに意表を突いた質問だったので、
その場では、慣れるしかないよ~(アハ,アハハハハ)みたいな説明しかできませんでしたw

私は、特に疑問にも思ったことすら無かったので、とても勉強(参考?)になりました。
初心者の人ってこういうところで、つまずくのかと

つまりそれを思い出して、媒介変数ならどっちが主役で悩まないかもと思ったわけです。
(そもそも引数とか戻り値って誰が訳したんですかね?)

その他諸々

だんだん何を書いてるのか分からなくなってきましたが、

オフィシャルなプログラミング言語のドキュメントの翻訳は、「戻り値」になってる場合が多いようです。(しかし、PHPは、返り値になっている)

IT用語辞典 e-Words

うーん、返り値も一応、載ってるなぁ・・・

IME関連

Microsoft IMEでは、
かえりちは、返り血しか変換できません。(Windows10)

Google日本語入力では、返り値で変換できます。

ん?Qiitaでは?

返り値の方が多いだとぅ!?

広めてるのは、お前か!

ここで記事書いてよかったかもw

まとめ

以前にも何度か調べたことがあるのですが、気になるたびに検索してて
あれ、また検索してる俺、みたいな既視感で記事にしてみました。

言葉なので、伝われば良いといえばいいのですが、システム開発の際は、
クライアントとの用語の齟齬による語弊は、よくあることなので、統一した方がいいのにと思ってます。

個人的には、「戻り値」で統一してほしい!

ので、今まで返り血(ブシャーッ!)と言っていた方は、戻り値に改宗していただきたく存じます。

かしこ