CheckArguments

CheckArguments[f[args],n]

如果 args 恰好由 n 个位置参数组成,随后是 f 的有效选项,则返回 True,否则返回 False.

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

要求位置参数的个数在 minmax 之间.

CheckArguments[f[args],spec,assoc]

根据关联 assoc 中的信息修改行为.

更多信息

  • 如果 f[] 的位置参数数量错误、选项未知或选项规范无效,CheckArguments 将对 f 发出适当的消息,并返回 False.
  • 以下键可用于关联 assoc
  • "ExtraOptions"{}被视为 f 已知选项的其他选项
    "OptionsMode""Longest"如何解释 args 的可选位置参数
  • 指定给 "ExtraOptions" 的其他选项可以指定为规则 nameval 或符号 func,这等效于 Options[func].
  • CheckArguments 检查指定给 f 的所有选项是否都具有有效名称.
  • "OptionsMode" 可以使用下列值: »
  • "Longest"将与 OptionsPattern[] 匹配的 args 的所有尾随元素视为 f 的选项
    "Shortest"将一个或多个已知选项以外的任何内容视为位置参数
    None将所有元素作为位置参数
  • 即使设置 "OptionsMode""Shortest",经过 max 位置的未知选项仍然会产生一条信息. »
  • CheckArguments 具有属性 HoldFirst.

范例

打开所有单元关闭所有单元

基本范例  (1)

声明函数 f 的选项:

验证 f 是否仅使用一个位置参数和已知选项调用:

如果 f 的参数无效,则发出适当的消息:

范围  (6)

检查位置参数个数在 1 到 3 之间的函数参数:

要求至少 2 个位置参数:

调用具有 1 个无效参数的 f

要求至少 3 个位置参数:

允许不出现在 Options[f] 中的隐藏选项:

选项 a0 不是 f 的已知选项:

允许设置名为 hidden 的选项以及 Graphics 的任何选项:

将位置在 min+1max 的未知尾随选项视为位置参数,而不是 f 的选项:

规则 b2 被视为位置参数:

使用默认的 "OptionsMode""Longest",将为未知选项发出一条消息:

设置 "OptionsMode""Shortest",已知选项仍被视为 f 的选项:

将所有元素视为位置参数,而不是 f 的选项:

应用  (2)

定义具有两个参数的函数:

对于任何其他数量的参数,发出消息,并以未运算的形式返回:

下式会正常运算:

如果参数数目不正确,则会发出一条消息:

定义一个函数,如果该函数使用最多一个参数调用,则调用辅助函数:

当最多使用一个参数调用时,将调用该辅助函数:

当使用多个参数调用时,f 以未运算的形式返回,并发出一条消息:

属性和关系  (8)

对于 f 的无效输入,CheckArguments[f[],] 将为 f 发出一条消息,并返回 False

如果 f 不接受选项,则认为所有参数均为位置参数:

CheckArguments[,{min,max}] 将始终将第一个 min 参数视为位置参数:

这里,即使 b0 匹配 OptionsPattern[],也被视为位置参数:

如果规则 b0 在位置参数之后给出,则被视为位置选项:

如果匹配 OptionsPattern[] 的尾随规则是 f 的已知选项,则将它们视为选项:

即使给出 "OptionsMode""Shortest" 也是如此:

包含已知和未知选项的选项规范会生成一条消息:

"OptionsMode""Shortest" 中,具有已知和未知选项的列表被尽可能视为位置参数:

超过最大位置参数个数的未知选项仍然会生成一条消息:

只有与 OptionsPattern[] 匹配的规则才是有效的选项规范:

规则 12 不匹配 OptionsPattern[]

因此,它被视为位置参数:

如果 12 在位置参数后给出,则被视为无效的选项规范:

ArgumentsOptions 返回 Failure[] 时,CheckArguments 返回 False

可能存在的问题  (2)

在最小参数数目或之前的所有参数均被视为位置参数:

尽管可以作为 StringCases 的选项,IgnoreCaseTrue 仍被视为一个参数:

CheckArguments 不检查选项值是否正确:

Infinity 不是 Heads 的有效值:

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 语言. 2020. "CheckArguments." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/CheckArguments.html.

APA

Wolfram 语言. (2020). CheckArguments. Wolfram 语言与系统参考资料中心. 追溯自 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: 22-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: 22-November-2024 ]}