アカウント名:
パスワード:
を参照渡しといっているのと同じ。確かに厳密には違うのだけどもね。でもC++で参照渡しが出てきたからCでも厳密に違うようになっただけで。
確かに確かに参照渡しと言わずポインタ渡し、もしくはより広く一般的な意味の変数渡しと言った方がいいのかも。
用語としては変数渡し(call by variable)は値渡し(call by value)と対になる言葉で、変数渡しの実装法としてメジャーなものの一つが参照渡し(call by reference)って関係です。
なので、ポインタ渡しで止めておくのが吉じゃねーかと。
JavaScriptとかのはポインタじゃないので値渡しとしか呼びようがないっすね。もしくは参照の値渡し。
ECMAScriptでは仕様上で参照はReference型のオブジェクトみたいなもので表されてるESの仕様はかなり抽象化されてて、実際の実装は自由にどうぞって感じが大きいだから、「参照の値渡し」という言葉で片付けられるのかが疑問
実際著名な実装みると最適化のためにプリミティブ型も整数を除いてイミュータブルなオブジェクトとして実装されてたりする(整数はポインタ埋め込み)だから実際は内部的にはほとんど「参照の値渡し」と言っていい
でもそもそも言葉の定義として、「オブジェクトは」って頭についてるんだから、代入演算子等が右辺の型によって「参照渡し」と「値渡し」を切り替えるなんて普通考えないから「オブジェクトは参照渡し」っていうのは、『ああ、オブジェクトは代入時にコピーされないんだな』って分かるからそんなに問題だとは思わないな
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
Cのポインタ渡し (スコア:0)
を参照渡しといっているのと同じ。
確かに厳密には違うのだけどもね。でもC++で参照渡しが出てきたからCでも厳密に違うようになっただけで。
Re: (スコア:0)
確かに確かに参照渡しと言わずポインタ渡し、もしくはより広く一般的な意味の変数渡しと言った方がいいのかも。
Re: (スコア:0)
用語としては変数渡し(call by variable)は値渡し(call by value)と対になる言葉で、変数渡しの実装法としてメジャーなものの一つが参照渡し(call by reference)って関係です。
なので、ポインタ渡しで止めておくのが吉じゃねーかと。
JavaScriptとかのはポインタじゃないので値渡しとしか呼びようがないっすね。もしくは参照の値渡し。
Re:Cのポインタ渡し (スコア:0)
ECMAScriptでは仕様上で参照はReference型のオブジェクトみたいなもので表されてる
ESの仕様はかなり抽象化されてて、実際の実装は自由にどうぞって感じが大きい
だから、「参照の値渡し」という言葉で片付けられるのかが疑問
実際著名な実装みると最適化のためにプリミティブ型も整数を除いてイミュータブルなオブジェクトとして実装されてたりする(整数はポインタ埋め込み)
だから実際は内部的にはほとんど「参照の値渡し」と言っていい
でもそもそも言葉の定義として、「オブジェクトは」って頭についてるんだから、
代入演算子等が右辺の型によって「参照渡し」と「値渡し」を切り替えるなんて普通考えないから
「オブジェクトは参照渡し」っていうのは、『ああ、オブジェクトは代入時にコピーされないんだな』って分かるからそんなに問題だとは思わないな