TArray

TArray

TArray 是 Unreal Engine 的数组实现。下文所述接口与其有所不同。

第一个也是最重要的区别是:索引从 1 开始,以符合 Lua 程序员对类似表结构的预期。

第二个区别是:底层使用 FScriptArray 而非 TArray<T>,因为 Lua 没有模板系统。必要时会在运行期间自动解析子类型 T。

继承关系

RemoteObject

元方法

__index

  • 用法: TArray[ArrayIndex]
  • 返回类型: auto
  • 尝试获取数组中指定整数偏移量 ArrayIndex 处的值。
  • 可以返回任意类型;对于较复杂类型,可对返回值调用 type() 函数以确定其 Lua 类。

__newindex

  • 用法: TArray[ArrayIndex] = NewValue
  • 尝试将数组中指定整数偏移量 ArrayIndex 处的值设为 NewValue。

__len

  • 用法: #TArray
  • 返回类型: integer
  • 返回数组当前元素的数量。

方法

GetArrayAddress()

  • 返回类型: integer
  • 返回值: TArray 结构在内存中的地址。

GetArrayNum()

  • 返回类型: integer
  • 返回值: 数组当前元素的数量。

GetArrayMax()

  • 返回类型: integer
  • 返回值: 此数组允许容纳的最大元素数(即容量)。

GetArrayDataAddress()

  • 返回类型: integer
  • 返回值: 此数组数据在内存中的存储地址。

Empty()

  • 清空数组。

ForEach(function Callback)

  • 遍历整个 TArray,并对数组中的每个元素调用回调函数。
  • 回调参数:integer index、RemoteUnrealParam elem 或 LocalUnrealParam elem。
  • 使用 elem:get() 和 elem:set() 访问/修改数组元素。
  • 回调可选择返回 true,以提前结束循环。

原文:docs/lua-api/classes/tarray.md · 固定提交 560411f18512 · 来源与 MIT 许可