TypeDeclaration
TypeDeclaration["Product",name,field1type1,field2type2,… >]
表示具有指定字段的 product 类型的声明.
TypeDeclaration["Abstract",name]
表示抽象类型 name 的声明.
TypeDeclaration["Alias",name,targetType]
表示类型 name 的声明,使用的是 targetType 的内部表示.
TypeDeclaration["Macro",name,targetType]
表示一个声明,指定 name 的所有实例应被 targetType 替换.
更多信息和选项
- TypeDeclaration 是声明的符号表示,不会自行进行计算.
- TypeDeclaration 可在 CompilerEnvironmentAppendTo 的内部使用,也可以在 FunctionCompile 等函数的第一个参数中使用.
- 支持以下类型的声明:
-
"Product" 含有几个字段的类型;类似于 C 中的结构体 (struct) "Abstract" 具体类型可以是某个类型的类别 (class) 的实例的抽象类型 "Alias" 内部实现与另一种类型相同的类型 "Macro" 适用于所有类型的替换规则 - 当与 C 兼容程序对接时,以下类型声明是等效的:
- 可用 prod["field"] 访问和设置 product 类型实例 prod 的字段.
- 支持以下选项:
-
"AbstractTypes" {} 含有所声明类型的抽象类型 "Creator" None 调用以创建声明类型的实例的函数 "MemoryManaged" Automatic 是否自动释放未引用的实例 "Operations" {} 可用于所声明类型的运算 "ReferenceSemantics" Automatic 是否在内部用指针表示类型 - 默认情况下,"Product" 声明含有 "MemoryManaged"True 和 "ReferenceSemantics"True 设置.
- 对于 "Product" 声明,"ReferenceSemantics" 只能被设为 True.
- 对于具有引用语义的 "Product" 声明,"MemoryManaged" 只能被设为 True.
- "Creator" 只能为 "Product" 声明设置.
- "Operations" 只能为 "Product" 和 "Abstract" 声明设置.
- 不能为 "Macro" 声明设置 "AbstractTypes".
- 为了与 C 结构体兼容,product 类型通常必须设置为 "MemoryManaged",而 "ReferenceSemantics" 通常必须设置为 False.
- 对作为 produc 类型实例的对象 prod 定义了以下方法:
-
prod["field"] 获取 "field" 的值 prod["field"]=val 设置 "field" 的值 DeleteObject[prod] 释放 prod (只在 prod 不是内存管理的情况下可用)
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (5)
"Abstract" (1)
选项 (11)
"AbstractTypes" (2)
"Creator" (1)
"MemoryManaged" (3)
编译一个使用该类型的函数并用,并用 DeleteObject 释放它:
由内存管理的 product 类型包括引用计数,并且与外部程序不兼容. 将 product 型传进和传出库函数时,应禁用内存管理.
用 TypeDeclaration 表示兼容类型:
"Operations" (3)
编译一个函数,创建该类型的实例及另一实例,调用 "Increment" 运算:
也可以为抽象类型定义运算. 在这种情况下,它们可用于实现抽象类型的任何类型:
编译一个函数,创建该类型的实例及另一实例,调用 "Increment" 运算:
运算声明;它是用 ForAllType 多态编写的:
编译一个函数,创建该类型的实例及另一实例,调用 "Increment" 运算:
也可以用其他方式实现运算. 由于它是用实际类型以更窄的方式声明的,因此它会覆盖抽象类型给出的实现:
"ReferenceSemantics" (2)
应用 (1)
文本
Wolfram Research (2022),TypeDeclaration,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TypeDeclaration.html.
CMS
Wolfram 语言. 2022. "TypeDeclaration." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/TypeDeclaration.html.
APA
Wolfram 语言. (2022). TypeDeclaration. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TypeDeclaration.html 年