ValueQ

ValueQ[expr]

如果已经对 expr 定义了一个值,则给出 True,否则给出 False.

更多信息和选项

  • ValueQ 具有属性 HoldAll.
  • ValueQ[expr,Methodm] 使用指定的方法确定表达式是否具有为其定义的值.
  • 选项 Method 的可能值包括:
  • Automatic自动行为
    "SymbolDefinitionsPresent"具有任何定义的另外一个符号
    "TrialEvaluation"检验运算后表达式是否发生变化
    "OwnValuesPresent"具有非空 OwnValues 的另外一个符号
    "Legacy"在版本12.1和更早版本中的匹配行为
  • 使用默认方法 Automatic,如果 expr 是符号,则 ValueQ[expr] 有效地使用 "OwnValuesPresent",而对于大多数其他表达式,则有效使用 "SymbolDefinitionsPresent".

范例

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

基本范例  (2)

还没有为变量 x 赋值:

赋值:

现在 ValueQ 返回 True

定义函数:

ValueQ[f[x]]True

范围  (4)

检查符号的立即值和延迟值:

检查函数定义:

头部为 f 的表达式不论实际是否改变都会返回 True

使用取决于特定参数的方法:

ValueQ[LocalSymbol[]] 当且仅当局部符号具有值时才给出 True

选项  (4)

Method  (4)

"SymbolDefinitionsPresent" 检验符号是否具有与之关联的任何运算定义:

"OwnValuesPresent" 检验任何符号是否具有直接赋值:

"TrialEvaluation" 检验输入表达式是否会更改:

"SymbolDefinitionsPresent" 测试是否将运行任何代码,即使其值保持不变:

方法 Automatic 为符号提供与 "OwnValuesPresent" 相同的结果:

对于更多的常规输入,它与 "SymbolDefinitionsPresent" 一致:

方法 Automatic 检查 LocalSymbol 是否具有指定值:

属性和关系  (3)

默认情况下,ValueQ[symbol] 仅检查 symbol 中的 OwnValues,而不检查其他类型的值:

ValueQ[x]True,因为 x 已被赋值:

ValueQ[f]False,由于 f 本身未被赋值:

对于更通用的表达式,ValueQ 检查任何类型的符号定义:

ValueQHoldAll

如果允许 x 在输入 ValueQ 之前进行运算,则将给出 y 的结果:

Pi 计算到本身:

NumericQ 求出是否定义了一个数值:

可能存在的问题  (2)

ValueQ 检查用户函数和内置函数的定义:

f 没有定义,但 Plus 有定义:

ValueQHoldAll:

ValueQ 看到 x 之前先对它进行运算:

使用 Unevaluated 保留 HoldAll 属性:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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