"ListVector" (编译类型)
-
参见
- 函 数
- List
-
- 编译类型
- PackedArray
- NumericArray
- 相关指南
- 技术笔记
-
-
参见
- 函 数
- List
-
- 编译类型
- PackedArray
- NumericArray
- 相关指南
- 技术笔记
-
参见
"ListVector" (编译类型)
"ListVector"::[type]
表示一个具有指定元素类型的统一列表.
更多信息
- "ListVector" 可以在 Typed 和相关结构中使用,以指定一个类型.
- "ListVector" 对象是由内存自动管理的.
- "ListVector" 的元素可以有任何编译的类型.
- "ListVector" 的元素都具有相同的类型.
- 对于等级大于 1 的数字张量,可以使用 "PackedArray" 或 "NumericArray".
函数构造
- "ListVector" 对象可以在编译后的代码中用 Typed[{…},"ListVector"::[type]] 进行构造. »
- CreateTypeInstance["ListVector"::[type],carr,len] 根据长度为 len 的 "CArray" carr 构造 "ListVector". 可以选择将 carr 包装在 "Managed" 中.
属性
- 类型为 "ListVector"::[type] 的 list 的 Information[list,"ContainedType"] 会给出 type.
- Information[list,"ElementType"] 对于类型为 "ListVector"::[type] 的 list 给出 type.
转换
- 只要列表中的每个元素都可以转换为 type,则 List 表达式可以与 "ListVector"::[type] 相互转换.
- "ListVector" 对象可与 "PackedArray" 对象相互转换.
- "ListVector" 对象可与 "NumericArray" 对象相互转换.
表达式
"PackedArray"
"NumericArray"
范例
打开所有单元 关闭所有单元基本范例 (2)
"ListVector" 可以用作 CompiledCodeFunction 的输入或输出:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["MachineInteger"]], arg]]cf[{1, 2, 3}]cf = FunctionCompile[Function[Typed[arg, "MachineInteger"],
Typed[{1, 2, arg}, "ListVector"::["MachineInteger"]]
]]cf[12]范围 (3)
"ListVector" 对象可以包含具有任何可编译类型的对象:
cf = FunctionCompile[Function[Typed[rules, "ListVector"::["Rule"::["String", "MachineInteger"]]], First[rules]]]cf[{"hello" -> 1, "world" -> 3}]更高等级的数组可以用嵌套的 "ListVector" 实例来表示:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["ListVector"::["MachineInteger"]]], Catenate[arg]]]cf[{{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10}}]cf = FunctionCompile[Function[Typed[arg, "ListVector"::["Real64"]], Information[arg, "ElementType"]]]cf[{1.2, 4.5, 5.3}]属性和关系 (1)
"PackedArray" 可以用来表示数字数组:
cf = FunctionCompile[Function[Typed[arg, "PackedArray"::["MachineInteger", 1]], First[arg]]]cf[{1, 2, 3, 4, 5}]cf = FunctionCompile[Function[Typed[arg, "PackedArray"::["String", 1]], First[arg]]]相比之下,"ListVector" 类型只能表示秩为 1 的列表,但它可以有任何可编译类型的元素:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["String"]], First[arg]]]cf[{"hello", "to", "the", "world"}]技术笔记
历史
2022年引入 (13.1)