装修公司名字大全参考免费,保定seo外包公司,公司网站维护好做吗,25个经典网站源代码本篇日志将介绍FString#xff0c;FText、FName的用法和相互转换#xff0c;以及容器TMap#xff0c;TArray的增删查改
一、字符串相关数据类型#xff1a;FString、FText、FName
FString是最接近std::string的类型#xff0c;字符串本身可以看做一个存储char型的动态数…本篇日志将介绍FStringFText、FName的用法和相互转换以及容器TMapTArray的增删查改
一、字符串相关数据类型FString、FText、FName
FString是最接近std::string的类型字符串本身可以看做一个存储char型的动态数组也可以使用来进行字符串连接
FName是不可修改的字符串类型其会在定义时生成一个哈希值适合作为TMap的键
FText最主要的功能是向玩家展示不同的语言包括中文可以在DataTable中进行设置
UPROPERTY(EditAnywhere,BlueprintReadWrite)
FString S1 a;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName S2 b;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FText S3 FText::FromString(c);//FText无法直接用字符串赋值
三种字符串在蓝图中显示的颜色是不同的
三种数据类型是可以互相转化的这里我们统一使用FString作为跳板
S1 S3.ToString();//FText向FString转化
S1 S2.ToString();//FName向FString转化
S2 FName(S1);//FString向FName转化
S3 FText::FromString(S1);//FString向FText转化
FString和std::string之间也是可以相互转化的
S4 TCHAR_TO_UTF8(*S1);//FString向std::string转化
S1 UTF8_TO_TCHAR(S4.c_str());//std::string向FString转化
二、容器:TArrayTMap
TArray是一种动态数组类似于std::array或std::vector下面是其常用的增删改查方法
TArrayintArray;
Array.Add(3);//添加一个元素到末尾
Array[0] 5;//可以进行随机访问
auto x Array.FindByPredicate([](const int x) {return x 3; });//返回找到的第一个符合条件的的值的指针没找到返回nullptr
UE_LOG(LogTemp, Warning, TEXT(%d), *x);
Array.RemoveAt(0);//删除某个索引值对应的元素
TMap是一个哈希表类似于std::unordered_map其提供了针对例如FString的UE特殊数据类型的哈希函数使用方法如下
TMapFString, intMap;
Map.Add(A, 1);//在哈希表中添加一个键值对
//Map[B] 2;//注意TMap不能像std::unordered_map一样自动创建一个B,2的键值对而是会报错
if(Map.Contains(A))
{UE_LOG(LogTemp, Warning, TEXT(warning:%d), Map[A]);//注意在用键求值是要先查询是否存在Map[A] 2;
}
Map.Remove(A);//移除哈希表中对应的元素
下一篇日志我将介绍UE中函数的声明和定义