問題タブ [default-parameters]
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.
javascript - JavaScript 関数のデフォルト パラメータ値を設定する
JavaScript 関数に、値が定義されていない場合に使用される (値が渡された場合は無視される) デフォルトを設定するオプションの引数を持たせたいと考えています。Ruby では次のようにできます。
これは JavaScript で動作しますか?
python - 「最小の驚き」と変更可能なデフォルト引数
十分長い間 Python をいじっている人は誰でも、次の問題に悩まされています (またはバラバラに引き裂かれています)。
Python の初心者は、この関数が常に 1 つの要素のみを含むリストを返すことを期待するでしょう: [5]
. その代わりに、結果は非常に異なっており、非常に驚くべきものです (初心者にとって):
私のマネージャーはかつてこの機能に初めて遭遇し、言語の「劇的な設計上の欠陥」と呼んでいました。私は、この動作には根本的な説明があると答えました。内部構造を理解していないと、非常に不可解で予想外です。ただし、次の質問に (自分自身で) 答えることができませんでした: 関数の実行時ではなく、関数の定義時に既定の引数をバインドする理由は何ですか? 経験豊富な動作が実際に使用できるとは思えません (バグを繁殖させることなく、C で静的変数を実際に使用したのは誰ですか?)
編集:
Baczek は興味深い例を示しました。あなたのコメントのほとんどと特にウタールのコメントとともに、私はさらに詳しく説明しました。
私には、設計上の決定は、パラメーターのスコープをどこに配置するかに関連しているように見えます: 関数内、またはそれと「一緒に」?
関数内でバインドを行うx
と、関数が呼び出されたときに指定されたデフォルトに効果的にバインドされ、定義されていないことを意味します。これは、深刻な欠陥をもたらすものです:def
行は、バインドの一部 (の関数オブジェクト) は定義時に発生し、一部 (デフォルト パラメーターの割り当て) は関数呼び出し時に発生します。
実際の動作はより一貫しています。その行が実行されるとき、つまり関数定義時に、その行のすべてが評価されます。
c - Cのデフォルト引数
Cの関数にデフォルトの引数を指定する方法はありますか?
c++ - Function pointers with default parameters in C++
How does C++ handle function pointers in relation to functions with defaulted parameters?
If I have:
Which function pointers can I use in relation to which function?
c# - C# 4 のデフォルト パラメータ値: デフォルトの DateTime/オブジェクト値を割り当てる方法は?
DateTime がオブジェクトであり、既定の C# パラメーターにコンパイル時の定数しか割り当てられない場合、DateTime などのオブジェクトに既定値をどのように指定しますか?
名前付きパラメーターをデフォルト値で使用して、コンストラクターで POCO の値を初期化しようとしています。
c# - これらのデフォルト パラメータの疑似シミュレーションの間に、機械的な大きな違いはありますか?
C#4.0 では、メソッドにデフォルトのパラメーターを許可することで、非常に凝った便利な機能が導入されました。しかし、C#3.0 はそうではありません。したがって、「デフォルト パラメーター」をシミュレートする場合は、そのメソッドを 2 つ作成する必要があります。1 つはそれらの引数を持ち、もう 1 つはそれらの引数を持たないものです。これを行うには2つの方法があります。
バージョン A - 他のメソッドを呼び出す
バージョン B - メソッド本体をコピーする
これらの間に実際の違いはありますか?これは、最適化やリソースの使用法などに関する質問ではありません (一貫性を維持するという私の一般的な目標の一部ですが)、どちらかの方法を選択することに大きな影響があるとは思いませんが、これらのことについては、誤って推測するよりも、質問する方が賢明です。
c++ - パラメータのデフォルトを前のパラメータの関数として設定する方法はありますか? 【C++】
私はそうではないと思いますが、チェックしたかっただけです.C++で次のようなことをする方法はありますか? 明らかに、以下を試すと、バーに関するスコープベースのエラーが発生します。
delphi - DelphiのTSomethingのデフォルトパラメータ値
これがDelphiで可能かどうか(またはそれを回避するためのクリーンな方法があるかどうか)を知りたいのですが:
GetSomething( x, y )
->これらの値を持つレコードを返します。
...次に、この関数をTSomething
パラメーターとして使用し、デフォルトで次のようにします。
コンパイラはここでエラーを吐き出しますが、それを回避する方法があるかどうかはわかりません!
これはできますか?
c# - デフォルトのパラメータを持つDLLImport c++関数
アンマネージ コード C++ DLL から C# アプリケーションに関数をインポートしようとしています。C++ プロトタイプは
これを c# で宣言して、param2 のデフォルトの性質を利用するにはどうすればよいですか? 次のコードは機能しません。param2 はガベージで初期化されます。