問題タブ [optional-arguments]
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 - python argparse、オプションが省略された場合、特定のファイルを検索します
入力ファイルの引数があり、argparseで簡単に処理できます
このパラメーターはオプションですが、省略した場合でも、現在のディレクトリを検索してこの入力ファイルを取得する必要があります。拡張子が .al のファイルが複数ある場合、またはファイルがない場合は、エラーが発生します。それ以外の場合は、見つかったファイルを開きます。
デフォルトまたはアクションパラメータを使用して、argparseでこれを実行する方法はありますか。引数を解析する前に検索を行い、例外状況が発生した場合でも、コマンドライン引数によって必要なファイルが提供される可能性があるため、それを発生させることはできません。パーサーが必要なパラメーターを満たしていない場合にアクションを実行することを考えましたが、argparse でそれを行う方法を見つけることができません。
module - オプションの引数が PRESENT でない場合、ローカル変数の作成を避けることはできますか?
Fortran 95のステートメントに問題がありPRESENT
ます。現在、Silverfrost の Plato とその FTN95 コンパイラ (「Release Win32」モード) を使用しています。私がやりたかったのは、サブルーチンを作成することです。SUB(a,b)
ここb
で、 はオプションの変数です。b
ここまでは順調ですが、 withに新しい値を与えようとすると問題が発生しif (.NOT. present(b)) b=0
ます。これはコードです:
この状況から抜け出すエレガントな方法はありますか? それとも、b_aux
たとえば別の変数を作成してから、次のコードを使用する必要がありますか?:
php - PHPの関数で位置引数の欠点を回避するには?
デフォルト値を持つ膨大な数のパラメータを持つphp関数がいくつかあります。このようなもの:
立場上の議論の恐ろしさを避けるために何ができるのだろうか。引数セットのサブセットのみを使用して名前で関数を呼び出すことは可能ですか? 次のように:
ありがとう!
matlab - オプションの文字列入力で MATLAB の inputParser を使用するにはどうすればよいですか? ドキュメントには「検証機能を使用する」と書かれていますが、その方法は不明です
と呼ばれる単一の最上位関数を含む MATLAB ファイルがありますsandbox
。その関数には、2 つの入れ子になった関数 と が含まれてmysum
います。これらは機能が同じであり、許可されるパラメーターは、一方が内部で使用され、他方が内部でmyprod
使用されることを除いて同じです。私の目標は、両方で使用するラッパー関数を作成し、すべての検証と入力解析を処理することです。この機能は と呼ばれます。@sum
@prod
mysum
myprod
applyFunc
ここがややこしいところです。次の 2 つの形式がmysum
あります。myprod
mysum(v)
戻りますsum(v, 1)
。mysum(v, 'imag')
戻り値sum(v, 1) + 1i
入力の他の組み合わせは、エラーをスローする必要があります。
inputParser
これらのさまざまな入力の組み合わせ、特にオプションの文字列入力を解析するのに問題があります。コードは次のとおりです。
問題の原因となっている行は次のとおりです (上記のコードでマークされているとおり)。
inputParser のドキュメントには、次のように記載されています。
オプションの文字列入力の場合は、検証関数を指定します。検証関数がない場合、入力パーサーは有効な文字列入力を無効なパラメーター名として解釈し、エラーをスローします。
残念ながら、これを行う方法がわかりません。簡単なImが欠けているものはありますか? 'imag'
引数がまったく渡されない場合( and の割り当てのようs
にp
)、コードは正常に動作しますが、渡すと次のエラーが発生します。
何か助けはありますか?
r - 引数が欠落しているメソッドのディスパッチ
特定の S4 メソッドの後続の S4 メソッドに引数値を明示的にError: argument "<argname>" is missing, with no default
ディスパッチするときの古典的なエラー (以下の例を参照)を回避するにはどうすればよいですか。
例
大局
- method
foo()
を呼び出すメソッドがありbar()
ます。 x
どちらのメソッドも、引数およびに依存しますy
。- メソッドは、引数およびを明示的な方法で
foo()
ディスパッチします: .x
y
bar()
bar(x=x, y=y)
foo()
ここで重要な点は、渡された引数の一部またはすべてbar()
が欠落していても気にしたくないということです。
ジェネリック メソッド
メソッドbar()
方法foo()
前述のように、foo()
渡された引数の一部またはすべてbar()
が欠落していても気にしたくありません。bar()
明示的な方法ですべてを渡すことになっています:
メソッド def は一見良さそうに見えますが、呼び出し時にx
またはy
が欠落していると失敗します。
回避策
これは、これまでに思いついた唯一の回避策です。
if ... else
それは機能しますが、すべてのステートメントのために、私はそれがあまり好きではありません. 「if-else ロジック」全体は、 のさまざまなメソッドの仕様に既に含まれていbar()
ます。結局のところ、メソッド ディスパッチャを最初に用意することの要点はそこにあるのではないでしょうか。したがって、私はステートメントを「望ましくない作業」と見なし、より良い方法を探しています。
もちろん、すべての「重要な」引数のデフォルト値として使用することに頼ることもできますが、できるだけ関数内ではなくにNULL
依存したいと思います。missing()
is.null()
c# - C# でオプションのパラメーターをオブジェクトとして使用する
私はこのコードを持っています:
request がnullの場合、新しいGetFilesRequestを作成します。これは、コンストラクターでクラスのデフォルトのパラメーターを作成するためにこれを行ったためです。
だから私は考えています:
しかし、私はこの警告を受けています:
matlab - 入力パーサー相互依存のオプション引数
次の関数では、オプションの入力パラメーターに Pt を指定しようとしました。Pt が指定されていない場合は、他のオプションのパラメーターを計算する必要があります (その部分は機能します)。しかし、私がそれを指定すると:
次のエラーが表示されます。
「Pt」は認識されたパラメーターではありません。有効な名前と値のペアの引数のリストについては、この関数のドキュメントを参照してください。
関数のコード:
助けてくれてどうもありがとう!