TArray
TArray 是 Unreal Engine 的数组实现。下文所述接口与其有所不同。
第一个也是最重要的区别是:索引从 1 开始,以符合 Lua 程序员对类似表结构的预期。
第二个区别是:底层使用 FScriptArray 而非 TArray<T>,因为 Lua 没有模板系统。必要时会在运行期间自动解析子类型 T。
继承关系
元方法
__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 许可