"ListVector" (编译类型)

"ListVector"::[type]

代表一个具有指定元素类型的统一列表.

更多信息

  • "ListVector" 可以在 Typed 和相关结构中使用,以指定一个类型.
  • "ListVector" 的元素可以有任何编译的类型.
  • "ListVector" 的元素都具有相同的类型.
  • 对于等级大于 1 的数字张量,可以使用 "PackedArray""NumericArray".

函数构造

  • "ListVector" 对象可以在编译后的代码中用 Typed[{},"ListVector"::[type]] 进行构造. »
  • CreateTypeInstance["ListVector"::[type],carr,len] 根据长度为 len"CArray" carr 构造 "ListVector". 可以选择将 carr 包装在 "Managed" 中.

属性

  • 类型为 "ListVector"::[type]listInformation[list,"ElementType"] 会给出 type.

转换

    表达式

  • 只要列表中的每个元素都可以转换为 type,则 List 表达式可以与 "ListVector"::[type] 相互转换.
  • "PackedArray"

  • "ListVector" 对象可与 "PackedArray" 对象相互转换.
  • "NumericArray"

  • "ListVector" 对象可与 "NumericArray" 对象相互转换.

运行时错误

    ArrayPartError

  • 如果需要从 "ListVector" 中提取元素的操作不存在,则会产生一个运行时错误.

范例

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

基本范例  (2)

"ListVector" 可以用作 CompiledCodeFunction 的输入或输出:

在编译得到的代码中创建一个 "ListVector"

范围  (3)

"ListVector" 对象可以包含具有任何可编译类型的对象:

更高等级的数组可以用嵌套的 "ListVector" 实例来表示:

获取 "ListVector" 的元素类型:

属性和关系  (1)

"PackedArray" 可以用来表示数字数组:

然而,它不能用于非数字型数据:

相比之下,"ListVector" 类型只能表示秩为 1 的列表,但它可以有任何可编译类型的元素:

可能存在的问题  (1)

部分访问会导致运行时错误: