实战用法
resize_temp_array 常用于需要动态控制临时数组长度的脚本场景,例如在循环运算完成后裁剪多余元素、或在初始化阶段为数组预分配固定数量的槽位并填充默认值。典型场景包括:构建固定长度的候选国家列表、或在 for_each_scope_loop 收集完数据后截断到指定大小。
# 收集完数据后,将临时数组截断为前 3 个元素
resize_temp_array = {
array = candidate_array
size = 3
}
# 简写:将 my_temp_array 大小设为 5(新元素默认填 0)
resize_temp_array = { my_temp_array = 5 }
配合关系
[add_to_temp_array](/wiki/trigger/add_to_temp_array):先用它向数组中批量添加元素,再用 resize_temp_array 将数组裁剪或扩展到目标长度,是构建定长列表的标准组合。
[clear_temp_array](/wiki/trigger/clear_temp_array):在重新填充前先清空数组,配合 resize_temp_array 可实现"重置并预分配"的初始化模式。
[find_highest_in_array](/wiki/trigger/find_highest_in_array):对调整好大小的数组执行最大值查找,确保查找范围符合预期,避免遍历到无效的默认值元素。
[collection_size](/wiki/trigger/collection_size):可在 resize_temp_array 前先检查当前数组实际长度,决定是否需要扩张或收缩,使逻辑更健壮。
常见坑
- 缩小数组会永久丢失末尾元素:新手常以为缩小后再扩大能恢复原来的值,实际上超出新
size 的元素在缩小时已被移除,扩大后补入的只是默认值(0),务必在缩小前确认不再需要那些元素。
- 在 trigger 块中误用该命令:
resize_temp_array 本质是带副作用的操作(会修改数组状态),虽然技术上允许出现在 trigger 上下文,但在纯条件判断(如 limit/available)中调用会产生难以追踪的状态污染,应尽量将其放在 effect 块中调用。