問題タブ [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.
php - PHP の参照渡しパラメータとデフォルトの null
次のようなメソッドシグネチャがあるとしましょう
の後のすべてのパラメーターを省略することで、メソッドを簡単に呼び出すことができます$dn
。
3 つのパラメーターを指定してメソッドを呼び出すこともできます。
そして4つのパラメータで:
しかし、たとえば次のパラメーターの組み合わせでメソッドを呼び出すことができないのはなぜですか。
null
メソッドに渡すこととデフォルト値に依存することの違いは何ですか? この制約はマニュアルに書かれていますか?回避できますか?
c# - C#拡張メソッド内から「this」にアクセスするにはどうすればよいですか?
私はVector2とXNAを使用してきましたが、ゼロベクトルでNormalize()メンバー関数を呼び出すと、{NaN、NaN}のベクトルに正規化されることがわかりました。これはすべてうまくいっていますが、私の場合は、代わりにゼロベクトルのままにしておくことをお勧めします。
このコードをプロジェクトに追加すると、かわいい拡張メソッドが有効になります。
残念ながら、このメソッドは、この拡張メソッドを呼び出すために使用するベクトルを単純に正規化するのではなく、正規化されたベクトルを返します。代わりに、 vector2Instance .Normalize()のように動作させたいと思います。
これを無効にする以外に、「v2」が変更されるようにこれを調整するにはどうすればよいですか?(基本的に、「this」オブジェクトにアクセスする必要があります。または、「v2」を参照して渡す必要があります。)
編集:
そして、はい、私はこれを試しました:
動作しません。v2はNormalizeOrZeroのスコープ内の単なる変数です。
c++ - C++ - std::shared_ptr または boost::shared_ptr への参照を渡す
を操作する必要がある関数がある場合、その関数へshared_ptr
の参照を渡す方が効率的ではないでしょうか (shared_ptr
オブジェクトのコピーを避けるため)。考えられる悪い副作用は何ですか? 次の 2 つのケースが考えられます。
1) 関数内で、次のように引数のコピーが作成されます。
2) 関数内では、次のように引数のみが使用されます。
どちらの場合も、参照ではboost::shared_ptr<foo>
なく値で渡す正当な理由がわかりません。値渡しは、コピーのために参照カウントを「一時的に」インクリメントするだけで、関数スコープを終了するときにデクリメントします。私は何かを見落としていますか?
明確にするために、いくつかの回答を読んだ後:私は時期尚早の最適化の懸念に完全に同意し、常に最初にプロファイルしてからホットスポットで作業しようとします. 私の質問は、純粋に技術的なコードの観点からのものでした。
java - Java:参照によってbyte []を渡す方法は?
キーワード「ref」を使用して、.NETでそれを行うことができます。Javaでそうする方法はありますか?
c++ - C++で参照渡しよりもポインタ渡しの利点はありますか?
C++で参照渡しよりもポインタ渡しの利点は何ですか?
最近、関数の引数を参照渡しではなくポインターで渡すことを選択した多くの例を見てきました。これを行う利点はありますか?
例:
の呼び出しで
対。
の呼び出しで
javascript - パラメータを使用して関数への参照を渡すにはどうすればよいですか?
指定された一連のパラメーターを持つ関数への参照を渡すことができる必要があります。
パラメータなしで参照を渡す例を次に示します。
次に、同じf
関数を渡す必要がありますが、今回はパラメーターを参照に渡す必要があります。今、私は無名関数でそれを行うことができ、次f
のように、新しく作成された関数内のパラメーターを使用して関数を呼び出すことができます。
しかし、私の質問は、パラメータを使用して関数への直接参照を渡す方法はありますが、匿名関数で囲むことはありませんか?f
fr
が呼び出されたときに f(1,2,3) が実行されるように、fr
パラメーター ( ) なしで呼び出し可能にするには、何を割り当てる必要がありますか?fr()
fr
[UPDATE]私はジェイソン・バンティングの部分関数についてのここへの回答 に従いました。彼がそこに投稿した JavaScript 関数はまさに私が探していたものです。解決策は次のとおりです。
language-agnostic - 参照による受け渡しと値による受け渡しの違いは何ですか?
違いは何ですか
- 参照によって渡されたパラメーター
- 値によって渡されるパラメータ?
例をいくつか教えてください。
.net - VB.NET での参照
VB.NET のクラスへの参照 (ポインタ?) は、私にはやや不明確です。私が尋ねようとしている質問は、少しテストすることで答えることができますが、誰かが適切な説明 (またはリンクも) を投稿できるかどうか疑問に思っていました。
クラスを作成する場合:
そして、実際にこのクラスをプロパティとして使用するクラス:
そして、次のように使用します。
これで、参照が参照ではなく「値によって」新しいクラスに渡されたとしても、関数BooleanCheck
は常に を返します。そのため、クラスのコピーは作成されませんが、 のローカル変数は引き続き のプロパティを参照/ポイントします。true
UsingClass
myReference
UsingClass
Reference
RuntimeOrSomething
これはどのようにエレガントに説明できますか?
asp.net-2.0 - ASP.NET 2.0:ObjectDataSourceのオブジェクトのインスタンスを指定する
ObjectDataSourceを使用してデータをGridViewにバインドしています。データソースとして使用する新しいオブジェクトを常に作成することを除いて、正常に機能します。すべてのセットアップは問題なく実行できますが、既存のオブジェクトのインスタンスを使用してその「データソース」として指定することはできません。これを行うことは可能ですか?もしそうなら、どのように?
それが不可能な場合、なぜですか?
編集:これが何が起こっているかの要点です(オブジェクトタイプが変更されました):最初のページであなたは犬の属性を編集しています。属性の1つは「子犬を持っている」であり、それがtrueの場合、次のページでそれらの子犬の名前を指定します。私の場合、これらの子犬は元の犬ではなく、「新しい」犬にリンクされています。(私の問題が「雌犬」であるという含意は偶然でした。;-))
c++ - 参照渡し / C++ の値
値渡しと参照渡しの違いを明確にしたいと思います。
絵を描きました
したがって、値渡しの場合、
同一のオブジェクトのコピーが別の参照で作成され、ローカル変数に新しい参照が割り当てられるため、新しいコピーを指す
言葉を理解する方法:「関数がその値を変更する場合、変更は、値渡しと参照渡しの両方の呼び出し関数のスコープ内にも表示されます」
ありがとう!