在 Unreal Engine 的 C++ 中,TArray<FString> SaveArray; 声明了一个存储 FString 类型元素的动态数组(TArray),变量名为 SaveArrayTArray 是 UE 提供的高效容器类,类似于 C++ 标准库的 std::vector,但针对游戏开发场景做了优化(如内存管理、线程安全、序列化支持等)。

详细解析

  • TArray:UE 的核心容器类,用于存储同类型的元素集合,支持动态扩容、快速访问和高效迭代。
  • FString:UE 中用于存储可变字符串的类型(类似 C++ 的 std::string),支持字符串拼接、查找、转换等操作。
  • SaveArray:数组变量名,通常用于存储需要保存或传递的字符串数据(如存档信息、配置项、列表数据等)。

典型用法场景

TArray<FString> 常用于处理字符串集合,例如:

  1. 存储多条文本数据

    cpp

    运行

    // 初始化并添加元素
    TArray<FString> SaveArray;
    SaveArray.Add(TEXT("玩家名称: 张三"));
    SaveArray.Add(TEXT("等级: 15"));
    SaveArray.Add(TEXT("金币: 500"));
    
  2. 遍历数组元素

    cpp

    运行

    // 遍历打印所有元素
    for (const FString& Line : SaveArray)
    {
        UE_LOG(LogTemp, Log, TEXT("%s"), *Line);
    }
    
  3. 文件读写(保存 / 加载数据)
    结合文件操作,将数组内容写入文件(如存档):

    cpp

    运行

    // 获取平台文件系统接口
    IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
    FString SavePath = FPaths::ProjectSavedDir() + TEXT("PlayerData.txt");
    
    // 创建文件并写入数组内容
    FFileHelper::SaveStringArrayToFile(SaveArray, *SavePath, FFileHelper::FEncodingOptions::AutoDetect, &PlatformFile);
    
    // 从文件加载内容到数组
    TArray<FString> LoadedArray;
    FFileHelper::LoadFileToStringArray(LoadedArray, *SavePath, FFileHelper::FEncodingOptions::AutoDetect, &PlatformFile);
    
  4. 字符串拆分与处理
    将长字符串按分隔符拆分为数组:

    cpp

    运行

    FString CSVData = TEXT("苹果,香蕉,橙子,西瓜");
    TArray<FString> Fruits;
    CSVData.ParseIntoArray(Fruits, TEXT(","), true); // 按逗号拆分
    // Fruits 结果:["苹果", "香蕉", "橙子", "西瓜"]
    

TArray 的核心方法

SaveArray 可调用 TArray 的常用方法操作元素:

  • Add(const FString& Element):在数组末尾添加元素。
  • Insert(const FString& Element, int32 Index):在指定索引插入元素。
  • RemoveAt(int32 Index):删除指定索引的元素。
  • Empty():清空数组并释放内存。
  • Num():返回数组元素数量。
  • IsEmpty():判断数组是否为空。
  • operator[](int32 Index):通过索引访问元素(如 SaveArray[0])。

优势与注意事项

  • 性能优化TArray 基于连续内存存储,随机访问速度快,适合频繁读写的场景。
  • 序列化支持:可直接用于 UE 的序列化系统(如存档、网络同步),无需额外处理。
  • 线程安全:提供线程安全的操作方法(如 AddThreadSafe),适合多线程环境。
  • 注意索引越界:访问元素时需确保索引在 0 ~ Num()-1 范围内,否则会触发断言(调试模式)。

总结:TArray<FString> SaveArray; 是 UE 中存储字符串集合的常用方式,尤其适合处理需要批量操作的文本数据(如存档、配置、列表展示等),结合 TArray 的丰富方法和 UE 的文件操作工具,能高效完成数据的存储与处理。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐