OptionValue
OptionValue[name]
给出选项 name 的值,该选项设置与 OptionsPattern 匹配.
OptionValue[f,name]
给出具有头部 f 的选项 name 的值.
OptionValue[f,opts,name]
从规则 opts 的列表中提取选项值.
OptionValue[…,{name1,name2,…}]
期望多个选项值.
更多信息
- OptionValue[name] 等价于 OptionValue[f,name],其中 f 是 OptionValue[name] 中转换规则左边的头部.
- OptionValue[f,name] 和 OptionValue[name] 会使用出现在 f 参数中第一个 OptionsPattern 对象的值.
- 在 OptionValue[f,opts,name] 中,只有明确列表 opts 以及 f 的默认值会被考虑.
- 在 OptionValue[f,opts,name] 中,f 可以是一个符号、规则或符号以及指定默认值的规则列表. f 中的每个符号 s 等价于 Options[s]. 如果同样的选项名被指定多次,第一个规范为默认值.
- OptionValue[f,opts,name,Hold] 返回应用 Hold 的选项值.
- OptionValue[Automatic,Automatic,name,Hold] 等价于 OptionValue[name],除了应用 Hold 的选项值.
- 当比较选项名时,OptionValue 忽略上下文,并视符号 s 和字符串 SymbolName[s] 可互换.
范例
打开所有单元关闭所有单元范围 (4)
使用多个 OptionsPattern 结构定义转换规则:
OptionValue[a] 被视为 OptionValue[f,a],因为它是外标头:
OptionValue 跟踪特殊的选项在哪里被指定:
在第 4 个参数中使用 Hold 返回使用 RuleDelayed 选项的未被计算的形式:
没有 Hold,会返回 $Assumptions 的当前值:
应用 (2)
属性和关系 (4)
OptionValue 检查所有要求的选项是否出现在默认设置中:
简单的情况,OptionValue[f,opts,name] 类似于 name/.opts/.Options[f]:
然而,OptionValue 执行额外的规范化以确保规则被正确应用:
可能存在的问题 (1)
定义转换规则,其中 OptionsPattern 只出现在不同函数的内部:
OptionValue[a] 不工作,因为 OptionsPattern 不是 f 的参数:
文本
Wolfram Research (2007),OptionValue,Wolfram 语言函数,https://reference.wolfram.com/language/ref/OptionValue.html.
CMS
Wolfram 语言. 2007. "OptionValue." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/OptionValue.html.
APA
Wolfram 语言. (2007). OptionValue. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/OptionValue.html 年