問題タブ [pass-by-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
17 に答える
199179 参照

php - PHP 変数は値渡しですか、それとも参照渡しですか?

PHP 変数は値または参照によって渡されますか?

0 投票する
11 に答える
18166 参照

language-agnostic - 参照渡しか値渡しか?

新しいプログラミング言語を学習するときに遭遇する可能性のある障害の 1 つは、その言語がデフォルトで値渡しか参照渡しかという問題です。

それでは皆さんに質問です、好きな言語で、実際にはどのように行われますか? そして、考えられる落とし穴は何ですか?

もちろん、お気に入りの言語は、これまでに遊んだことがある言語なら何でもかまいません:人気のある、あいまいな難解な新しい古い...

0 投票する
92 に答える
2379480 参照

java - Javaは「参照渡し」または「値渡し」ですか?

Java はpass-by-reference を使用しているといつも思っていました。

ただし、 Java がpass-by-value を使用していると主張するブログ投稿を見たことがあります。

私は彼らが行っている違いを理解していないと思います。

説明は何ですか?

0 投票する
10 に答える
843 参照

c++ - 参照によって渡されたパラメーターが関数内で変更されないのはなぜですか?

静的ライブラリにC関数があります。これをAと呼びましょう。次のインターフェイスを使用します。

この関数はyazの値を変更します(これは確かです)。extern "C"を使用して、動的C++ライブラリ内から使用します。

さて、これが私を驚かせるものです:

  • yは正しく設定され、zは変更されません。私が正確に意味するのは、両方が666の(ポイントされた)値で初期化された場合、yがポイントした値は呼び出し後に変更されますが、zがポイントした値は変更されません(まだ666)。
  • Cバイナリから呼び出されると、この関数はシームレスに機能します(zが指す値が変更されます)。
  • 同じプロトタイプを持つ関数を使用してダミーのCライブラリを作成し、それを動的C ++ライブラリ内から使用すると、非常にうまく機能します。同じ変数を再利用してA(..)を呼び出すと、以前と同じ結果が得られます。zは変更されません。

上記の点は、私の変数の宣言が愚かな間違いではないことを示していると思います。

明らかに行き詰まっていて、Cライブラリを変更できません。何が問題になるのか、何か手がかりはありますか?私はC/C ++インターフェースの問題、たとえばchar*の解釈方法について考えていました。

編集:私はついに何が問題だったのかを見つけました。以下の私の答えを参照してください。

0 投票する
6 に答える
24184 参照

ruby - Rubyで「パラメータを参照渡し」しますか?

Ruby では、値型のセマンティクス (Fixnum など) を持つパラメーターを参照渡しすることは可能ですか? C# の ' ref ' キーワードに似たものを探しています。

例:

ところで。私はちょうど使用できることを知っています:

0 投票する
9 に答える
33831 参照

php - PHP (>= 5.0) では、参照渡しは高速ですか?

PHP では、次のように、関数宣言のパラメーターの前にアンパサンドを追加することで、関数パラメーターを参照によって渡すことができます。

現在、これはパフォーマンスを向上させるためではなく、関数が通常はスコープ外の変数を変更できるようにするために設計されていることを認識しています。

代わりに、PHP は Copy On Write を使用して、変更されるまでオブジェクト (および場合によっては配列も) のコピーを回避しているようです。そのため、パラメーターを変更しない関数の場合、参照によって渡した場合と同じ効果が得られます。

ただし、Copy On Write ロジックが参照渡しでショートサーキットされている可能性があるかどうか、およびそれがパフォーマンスに影響を与えるかどうかは疑問でした。

ETA: 確かに、高速ではないと思いますし、これが参考文献の目的ではないことも十分承知しています。だから私自身の推測はかなり良いと思います.ボンネットの下で何が起こっているのかを本当に知っている誰かからの答えを探しているだけです. PHP の開発に 5 年間携わってきましたが、ソースを読むだけでは PHP の内部構造に関する質の高い情報を得るのが難しいといつも感じていました。

0 投票する
3 に答える
46486 参照

.net - C++/CLI で、'out' パラメーターを使用して関数を宣言して呼び出すにはどうすればよいですか?

1 つの文字列を 2 つの文字列に解析する関数があります。C# では、次のように宣言します。

そして、私はそれを次のように呼びます:

現在のプロジェクトは C++/CLI で行う必要があります。私はもう試した

しかし、次のように呼び出すと:

コンパイラ エラーが発生します。次のように呼び出すと、次のようになります。

その後、実行時にエラーが発生します。関数をどのように宣言して呼び出す必要がありますか?

0 投票する
10 に答える
173741 参照

c# - オブジェクトを渡すときに「ref」キーワードを使用するのはなぜですか?

オブジェクトをメソッドに渡す場合、ref キーワードを使用する必要があるのはなぜですか? とにかくこれはデフォルトの動作ではありませんか?

例えば:

出力は、オブジェクトが参照として渡されたことを意味する "Bar" です。

0 投票する
5 に答える
2124 参照

php - PHPの配列内で配列参照を使用するにはどうすればよいですか?

私は次のことができるようにしたい:

よろしく

/R

0 投票する
11 に答える
111610 参照

c++ - C++では、値渡しと定数参照渡しのどちらが良いですか?

C++では、値渡しと定数参照渡しのどちらが良いですか?

私はどちらがより良い習慣なのか疑問に思っています。定数参照による受け渡しは、変数のコピーを作成していないため、プログラムのパフォーマンスが向上するはずです。