CheckArguments

CheckArguments[f[args],n]

args が厳密に n 個の位置引数に f の有効なオプションが続く形で構成されている場合はTrueを,それ以外の場合はFalseを返す.

CheckArguments[f[args],{min,max}]

位置引数の数が min から max であることを求める.

CheckArguments[f[args],spec,assoc]

連想 assoc の情報に基づいて動作を変更する.

詳細

  • CheckArgumentsは,f[]に無効な数の位置引数や未知のあるいは無効なオプション指定がある場合は,f についての適切なメッセージを出してFalseを返す.
  • 連想 assoc には次のキーが使える.
  • "ExtraOptions"{}f の既知のオプションとして扱う追加的なオプション
    "OptionsMode""Longest"args の任意の引数をどのように解釈するか
  • "ExtraOptions"に与えられる追加的なオプションは,規則 nameval として,あるいはシンボル func として指定できる.後者はOptions[func]に等しい.
  • CheckArgumentsは,f について指定されている全オプションに有効な名前があるかどうかをチェックする.
  • 次の"OptionsMode"の値を使うことができる. »
  • "Longest"OptionsPattern[]にマッチする args のすべての末尾要素を f のオプションとして扱う
    "Shortest"1つまたは複数の既知のオプション以外のすべてを位置引数として扱う
    Noneすべての要素を位置引数として扱う
  • たとえ"OptionsMode""Shortest"としても,位置 max を超えたところにある未知のオプションはメッセージを生成する. »
  • CheckArgumentsは属性HoldFirstを有する.

例題

すべて開くすべて閉じる

  (1)

fのオプションを宣言する:

fが厳密に1つの位置引数と既知のオプションで呼ばれていることを確認する:

fの引数が無効のときは適切なメッセージが出される:

スコープ  (6)

1つから3つの位置引数を取る関数の引数をチェックする:

少なくとも2つの位置引数が必要である:

f1つの引数で呼んでも無効である:

厳密に3つの位置引数が必要である:

Options[f]には現れない「隠れた(hidden)」オプションが使えるようにする:

オプション a0はfの既知のオプションではない:

hiddenという名前のオプションをGraphicsの任意のオプションと同様に設定できるようにする:

位置 min+1から max までにある任意の末尾のオプションを,fのオプションとしてではなく位置引数として扱う:

規則b2は位置引数として扱われる:

デフォルトの"OptionsMode""Longest"のときは,未知のオプションに対してメッセージが出される:

既知のオプションは,"OptionsMode""Shortest"としても f のオプションとして扱われる:

すべての要素を,f のオプションではなく位置引数として扱う:

アプリケーション  (2)

2つの引数を取る関数を定義する:

それ以外の数の引数があるときはメッセージが出され,関数は未評価で返される:

以下は正常に評価される:

引数の数が不正なときはメッセージが出される:

最大で1個の引数で呼ばれたときはヘルパー関数を呼び出す関数を定義する:

最大で1個の引数で呼ばれると,ヘルパー関数が呼び出される:

fは,2つ以上の引数で呼ばれると未評価のまま返され,メッセージが出される:

特性と関係  (8)

CheckArguments[f[],]は,f についての無効な入力に対しては,f についてのメッセージを出してFalseを返す:

f がオプションを取らないときは,すべての引数が位置引数であると仮定される:

CheckArguments[,{min,max}]は,常に最初の min 個の引数を位置引数として扱う:

以下では,b0OptionsPattern[]と一致しているにもかかわらず,位置引数として扱われている:

規則b0は,位置引数の後で与えらると未知のオプションとして扱われる:

OptionsPattern[]と一致する末尾の規則は,f にとって既知のオプションの場合はオプションとして扱われる:

これは,たとえ"OptionsMode""Shortest"が与えられていても真である:

オプション指定に未知と既知の両方のオプションが含まれているとメッセージが出される:

"OptionsMode""Shortest"とすると,未知と既知のオプションのリストは,可能な場合は位置引数として扱われる:

位置引数の最大数を超える未知のオプションがあってもメッセージが出される:

OptionsPattern[]と一致する規則だけが有効なオプション指定である:

規則12OptionsPattern[]とは一致しない:

したがって,これは位置引数として扱われる:

12は,位置引数の後で与えられた場合は無効なオプション指定として扱われる:

CheckArgumentsは,ArgumentsOptionsFailure[]を返すときはFalseを返す:

考えられる問題  (2)

最少数の引数の位置あるいはその前にある引数はすべて位置引数として扱われる:

IgnoreCaseTrueStringCasesのオプションであるにもかかわらず引数として扱われる:

CheckArgumentsはオプション値が正しいかどうかはチェックしない:

InfinityHeadsの有効な値ではない:

Wolfram Research (2020), CheckArguments, Wolfram言語関数, https://reference.wolfram.com/language/ref/CheckArguments.html (2024年に更新).

テキスト

Wolfram Research (2020), CheckArguments, Wolfram言語関数, https://reference.wolfram.com/language/ref/CheckArguments.html (2024年に更新).

CMS

Wolfram Language. 2020. "CheckArguments." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/CheckArguments.html.

APA

Wolfram Language. (2020). CheckArguments. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CheckArguments.html

BibTeX

@misc{reference.wolfram_2024_checkarguments, author="Wolfram Research", title="{CheckArguments}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/CheckArguments.html}", note=[Accessed: 07-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_checkarguments, organization={Wolfram Research}, title={CheckArguments}, year={2024}, url={https://reference.wolfram.com/language/ref/CheckArguments.html}, note=[Accessed: 07-November-2024 ]}