TypeOf

TypeOf[expr]

给出 expr 的类型,不对其进行计算.

TypeOf[expr,Typed[x,ty]]

假定 expr 中出现的 x 的类型为 ty.

TypeOf[expr,{Typed[x1,ty1],Typed[x2,ty2],}]

假定 xi 的类型为 tyi.

TypeOf[expr,decls]

使用声明 decls.

更多信息和选项

  • TypeOf 可以在已解释的程序和编译过的程序中使用.
  • TypeOf 使用 Wolfram 编译器的类型推断系统.
  • TypeOf 只接受可由 Wolfram 编译器编译的表达式和类型.
  • TypeOf 可用在已诠释的代码中,快速检查编译是否有效.
  • TypeOf 可用在编译代码中,用来确定部分代码的类型.
  • 可在 TypeEvaluate 中使用 TypeOf,用来确定函数声明的类型.
  • TypeOf 可接受 Typed 和声明指定,如 FunctionDeclarationTypeDeclaration.

范例

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

基本范例  (6)

确定函数的类型:

TypeOf 很有用,因为它只是确定函数的类型,表明编译是可行的.

求表达式的类型:

只指定子表达式的类型,求表达式的类型:

FunctionDeclaration 求函数的类型:

编译含有 TypeOf 的程序:

TypeOf 在用 ForAllType 编写的多态声明中很有用,因为在声明时参数的类型是未知的:

可在 TypeEvaluate 中使用 TypeOf,用来确定声明中的类型:

范围  (2)

求使用数组的程序的类型:

TypeOf 不会在编译代码中对其参数进行计算,就像在已计算过的代码中一样:

应用  (1)

求不同类型的表达式相乘的结果:

属性和关系  (3)

TypeOf 推断输入的类型,不对其进行计算:

TypeOf 给出由 FunctionCompile 生成的 CompiledCodeFunction 返回的类型,但速度要快得多:

如果 TypeOf 无法编译某些内容,它会发出一条消息,通常包含一个按钮来显示错误的来源:

单击该按钮通常会打开一个用户界面,可以帮助定位错误:

可能存在的问题  (3)

TypeOf 只能推断出可编译程序的类型:

TypeOf 不对参数进行计算,这会导致意想不到的后果:

需明确计算 TypeOf 的参数:

TypeOf 只计算其主要参数的类型,因此不能发现声明中的错误:

FunctionCompile 进行完整编译并可以发现声明中的错误:

Wolfram Research (2022),TypeOf,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TypeOf.html.

文本

Wolfram Research (2022),TypeOf,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TypeOf.html.

CMS

Wolfram 语言. 2022. "TypeOf." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/TypeOf.html.

APA

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

BibTeX

@misc{reference.wolfram_2025_typeof, author="Wolfram Research", title="{TypeOf}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/TypeOf.html}", note=[Accessed: 04-June-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_typeof, organization={Wolfram Research}, title={TypeOf}, year={2022}, url={https://reference.wolfram.com/language/ref/TypeOf.html}, note=[Accessed: 04-June-2025 ]}