問題タブ [parameter-passing]
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.
python - **(二重星/アスタリスク)および*(星/アスタリスク)はパラメーターに対して何をしますか?
次のメソッド定義では、*
と**
は何をしparam2
ますか?
java - Javaは「参照渡し」または「値渡し」ですか?
Java はpass-by-reference を使用しているといつも思っていました。
ただし、 Java がpass-by-value を使用していると主張するブログ投稿を見たことがあります。
私は彼らが行っている違いを理解していないと思います。
説明は何ですか?
c# - メソッドから匿名型を返すにはどうすればよいですか?
複数の場所から呼び出したい Linq クエリがあります。
メソッドを作成し、このコードをその中に入れて、それを呼び出すにはどうすればよいですか?
ruby - Rubyで「パラメータを参照渡し」しますか?
Ruby では、値型のセマンティクス (Fixnum など) を持つパラメーターを参照渡しすることは可能ですか? C# の ' ref ' キーワードに似たものを探しています。
例:
ところで。私はちょうど使用できることを知っています:
c - ポインターを渡すのではなく、C で構造体を値で渡すことの欠点はありますか?
ポインターを渡すのではなく、C で構造体を値で渡すことの欠点はありますか?
構造体が大きい場合、大量のデータをコピーするというパフォーマンス上の側面があることは明らかですが、構造体が小さい場合は、関数にいくつかの値を渡すのと基本的に同じにする必要があります。
戻り値として使用すると、さらに興味深いものになるかもしれません。C では、関数からの戻り値は 1 つしかありませんが、多くの場合、複数の値が必要になります。したがって、簡単な解決策は、それらを構造体に入れて返すことです。
これに賛成または反対の理由はありますか?
ここで私が話していることは誰にも明らかではないかもしれないので、簡単な例を挙げます。
C でプログラミングしている場合、遅かれ早かれ次のような関数を書き始めるでしょう。
これは問題ではありません。唯一の問題は、すべての関数で同じ規則を使用するために、パラメーターの順序について同僚と同意する必要があることです。
しかし、同じ種類の情報を返したい場合はどうなるでしょうか? 通常、次のようなものが得られます。
これは問題なく機能しますが、はるかに問題があります。戻り値は戻り値ですが、この実装ではそうではありません。上記から、関数 get_data が len が指すものを見ることが許可されていないことを伝える方法はありません。また、値が実際にそのポインターを介して返されることをコンパイラーにチェックさせるものは何もありません。そのため、来月、他の誰かがコードを正しく理解せずに (ドキュメントを読んでいなかったために) コードを変更すると、気付かないうちにコードが壊れたり、ランダムにクラッシュしたりします。
だから、私が提案する解決策は単純な構造体です
例は次のように書き直すことができます。
なんらかの理由で、ほとんどの人は本能的に inspect_data に構造体 blob へのポインターを持たせると思いますが、その理由はわかりません。ポインターと整数は引き続き取得されますが、それらが一緒になることははるかに明確です。get_data の場合、長さの入力値がなく、長さが返される必要があるため、前に説明した方法で混乱することはありません。
c++ - C++で参照渡しよりもポインタ渡しの利点はありますか?
C++で参照渡しよりもポインタ渡しの利点は何ですか?
最近、関数の引数を参照渡しではなくポインターで渡すことを選択した多くの例を見てきました。これを行う利点はありますか?
例:
の呼び出しで
対。
の呼び出しで
variables - オブジェクトインスタンス変数を使用する場合とメソッドに引数を渡す場合
メソッドに引数を渡すか、オブジェクトのすべてのメソッドに表示されるオブジェクトインスタンス変数として引数を宣言するかをどのように決定しますか?
クラスの最後にあるリストにインスタンス変数を保持することを好みますが、プログラムが大きくなるにつれて、このリストは長くなります。変数が十分な頻度で渡されるかどうかは、それを必要とするすべてのメソッドに表示されるはずですが、「すべてが公開されていれば、何も渡す必要はありません」と思います。
java - パラメータとして渡されたオブジェクトの値の変化を検出します
私は今、このようなコードで作業しています
パラメータとして渡されたオブジェクトを変更するのは悪い習慣だと思います。そのようなコードを検出するツールはありますか?findbugs、pmd、checkstyleを調べましたが、これに対するチェックは見つかりませんでした。
PS悪い例でごめんなさい。