【UE】Análisis de cadenas de caracteres y métodos de conversión mutua

Tres cadenas comunes en UE

C++ admite dos codificaciones de cadenas: ANSI (char) y Unicode de caracteres anchos (wchar_t), pero por razones de eficiencia, UE no usa directamente el tipo de cadena nativa de C++.

UE usa TEXTmacros para usar el tipo de cadena apropiado de acuerdo con la plataforma que se está ejecutando actualmente. Por lo tanto, debe usar esta macro para envolver cadenas tanto como sea posible.

FNombre

Basado en la implementación de la tabla hash, su esencia es una identificación.
No distingue entre mayúsculas y minúsculas, el almacenamiento y la búsqueda son muy rápidos, no se pueden modificar, solo se guarda una copia del mismo contenido

FTexto

Basado en TSharedRef<ITextData>la implementación, por lo que la eficiencia de la copia es alta
. Se distingue entre mayúsculas y minúsculas, no se puede modificar y tiene una función de localización . Por lo tanto, el tipo de texto utilizado en Slate es FText

FCadena

Se distingue entre mayúsculas y minúsculas según TArray<TCHAR>la implementación
, se puede modificar pero significa más gastos generales

En términos de gastos generales, FName es el más ligero y FString es el más pesado.

conversión entre cadenas

de \ a FCadena FNombre FTexto
FCadena TestFName=FName(TestFString) TestFText=FText::FromString(TextString)
FNombre TestFString=TestFName.ToString() TestFText=FText::FromName(TestFName)
FTexto TestFString=TestFText.ToString() ninguno

No hay una función de conversión directa de FText a FName, puede transferirla a través de FString,
pero tenga en cuenta que la conversión aquí tiene pérdidas: las características de cada cadena ya no estarán disponibles después de la conversión a otros tipos (como la función de localización de FText y la insensibilidad a mayúsculas y minúsculas de FName)

Además, FString también se puede intercambiar con std::string, const TCHAR*:

std::string Str = "str";

FString TestFString(str.c_str());

std::string NewStr(TCHAR_TO_UTF8(*TestFString));

const TCHAR* ConstTchar = *TestFString;

Consulte los
cuatro tipos de análisis de cadenas de UE de Aery y utilice
los conocimientos básicos sobre Unicode y conjuntos de caracteres que todo desarrollador de software debe comprender (original en inglés)

Supongo que te gusta

Origin blog.csdn.net/weixin_44559752/article/details/128482788
Recomendado
Clasificación