ArgumentsOptions

ArgumentsOptions[f[args],n]

尝试将 args 分成 n 个位置参数的列表,随后是 f 的有效选项的列表.

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

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

ArgumentsOptions[f[args],spec,assoc]

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

更多信息

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

范例

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

基本范例  (1)

声明函数 f 的选项:

f 的参数分为恰好一个位置参数和选项:

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

范围  (7)

对于位置参数位于 1 和 3 之间的函数,分离其位置参数和选项:

至少需要 2 个位置参数:

1 个参数调用 f 是无效的:

需要恰好 3 个位置参数:

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

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

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

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

规则 b1 被视为位置参数:

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

已知选项仍被视为 f 的选项,且具有 "OptionsMode""Shortest"

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

将参数分开,而不对其进行运算:

应用  (2)

定义一个函数,如果使用一个或两个位置参数调用该函数,则调用一个辅助函数:

当使用一个或两个位置参数调用时,辅助函数将被调用:

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

使用 "OptionsMode""Shortest" 将尾随的空列表视为位置参数:

属性和关系  (10)

对于 f 的无效输入,ArgumentsOptions[f[],] 发出一条消息,并返回 Failure[]

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

选项始终以展平列表的形式返回,无论它们如何出现在输入表达式中:

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

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

如果规则 a0 是在位置参数后给出,则将其视为选项:

当收集选项时仅考虑尾随选项:

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

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

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

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

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

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

规则 12 不匹配 OptionsPattern[]

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

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

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

可能存在的问题  (3)

如果 f 接受选项,则尾随的空列表将默认被忽略,因为 {}OptionsPattern[] 匹配:

使用 "OptionsMode""Shortest" 将尾随的空列表视为位置参数:

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

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

Infinity 不是 Heads 的有效值:

Wolfram Research (2020),ArgumentsOptions,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArgumentsOptions.html (更新于 2024 年).

文本

Wolfram Research (2020),ArgumentsOptions,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArgumentsOptions.html (更新于 2024 年).

CMS

Wolfram 语言. 2020. "ArgumentsOptions." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/ArgumentsOptions.html.

APA

Wolfram 语言. (2020). ArgumentsOptions. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ArgumentsOptions.html 年

BibTeX

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

BibLaTeX

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