CheckArguments[f[args],n]
CheckArguments[f[args],{min,max}]
要求位置参数的个数在 min 和 max 之间.
CheckArguments[f[args],spec,assoc]
根据关联 assoc 中的信息修改行为.
CheckArguments
CheckArguments[f[args],n]
CheckArguments[f[args],{min,max}]
要求位置参数的个数在 min 和 max 之间.
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)
范围 (6)
Options[f] = {a -> 1}CheckArguments[f[1, 2, 3, a -> 0], {1, 3}]CheckArguments[f[1, 2, 3], {2, ∞}]CheckArguments[f[1], {2, ∞}]Options[f] = {a -> 1, b -> 2}CheckArguments[f[1, 2, 3, a -> 0, b -> 0], 3]允许不出现在 Options[f] 中的“隐藏”选项:
CheckArguments[f[1, a -> 0], 1, <|"ExtraOptions" -> {a -> 1}|>]Options[f]允许设置名为 hidden 的选项以及 Graphics 的任何选项:
Options[f] = {normal -> Automatic}CheckArguments[f[1, normal -> 3, hidden -> 2, AspectRatio -> 1], {1, 2}, <|"ExtraOptions" -> {hidden -> 0, Graphics}|>]将位置在 min+1 至 max 的未知尾随选项视为位置参数,而不是 f 的选项:
Options[f] = {a -> 1}CheckArguments[f[1, b -> 2], {1, 2}, <|"OptionsMode" -> "Shortest"|>]使用默认的 "OptionsMode""Longest",将为未知选项发出一条消息:
CheckArguments[f[1, b -> 2], {1, 2}, <|"OptionsMode" -> "Longest"|>]设置 "OptionsMode""Shortest",已知选项仍被视为 f 的选项:
CheckArguments[f[a -> 2], 0, <|"OptionsMode" -> "Shortest"|>]CheckArguments[f[a -> 2], 0, <|"OptionsMode" -> None|>]应用 (2)
f[x_, y_] := 2x yf[args___] := Null /; CheckArguments[f[args], 2]f[3, 4]f[2]定义一个函数,如果该函数使用最多一个参数调用,则调用辅助函数:
f[args___] := g[args] /; CheckArguments[f[args], {0, 1}]g[] := 5
g[x_] := x + 5f[]f[1]当使用多个参数调用时,f 以未运算的形式返回,并发出一条消息:
f[1, 2]属性和关系 (8)
对于 f 的无效输入,CheckArguments[f[…],…] 将为 f 发出一条消息,并返回 False:
Options[f] = {a -> 1}CheckArguments[f[1, 2], 3]CheckArguments[f[0, b -> 2], 1]Options[f]CheckArguments[f[0, b -> 2], 1]CheckArguments[…,{min,max}] 将始终将第一个 min 参数视为位置参数:
Options[f] = {a -> 1}这里,即使 b0 匹配 OptionsPattern[],也被视为位置参数:
CheckArguments[f[1, b -> 0], {2, 3}]CheckArguments[f[1, 2, b -> 0], {2, 3}]如果匹配 OptionsPattern[] 的尾随规则是 f 的已知选项,则将它们视为选项:
Options[f] = {a -> 1}即使给出 "OptionsMode""Shortest" 也是如此:
CheckArguments[f[1, a -> 2], {1, 2}, <|"RulesMode" -> "Shortest"|>]Options[f] = {a -> 1}CheckArguments[f[1, {a -> 2, b -> 3}], 1]在 "OptionsMode""Shortest" 中,具有已知和未知选项的列表被尽可能视为位置参数:
Options[f] = {a -> 1}CheckArguments[f[1, {a -> 2, b -> 3}], {1, 2}, <|"OptionsMode" -> "Shortest"|>]CheckArguments[f[1, 2, {a -> 2, b -> 3}], {1, 2}, <|"OptionsMode" -> "Shortest"|>]只有与 OptionsPattern[] 匹配的规则才是有效的选项规范:
Options[f] = {a -> 1}规则 12 不匹配 OptionsPattern[]:
MatchQ[1 -> 2, OptionsPattern[]]CheckArguments[f[1 -> 2], {0, 1}]CheckArguments[f[0, 1 -> 2], {0, 1}]当 ArgumentsOptions 返回 Failure[…] 时,CheckArguments 返回 False:
CheckArguments[f[], 1]ArgumentsOptions[f[], 1]可能存在的问题 (2)
CheckArguments[StringCases["str", IgnoreCase -> True, Overlaps -> True], {2, 3}]尽管可以作为 StringCases 的选项,IgnoreCaseTrue 仍被视为一个参数:
Options[StringCases]CheckArguments 不检查选项值是否正确:
CheckArguments[Map[f, x, Heads -> ∞], {2, 3}]Map[f, x, Heads -> ∞]技术笔记
-
▪
- 定义具有可选变量的函数 ▪
- 操纵选项
相关的工作流程
- 定义带有选项的函数
文本
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_2026_checkarguments, author="Wolfram Research", title="{CheckArguments}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/CheckArguments.html}", note=[Accessed: 16-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_checkarguments, organization={Wolfram Research}, title={CheckArguments}, year={2024}, url={https://reference.wolfram.com/language/ref/CheckArguments.html}, note=[Accessed: 16-September-2026]}