작성
·
337
·
수정됨
0
항상 친절한 답변 감사합니다.
왜 DataTable의 Value는 uint8*를 쓰게 됐을까가 궁금합니다.
TArray<uint8*> ValueArray;
DataTable->GetRowMap().GenerateValueArray(ValueArray);
GenerateValueArray함수로 데이터 테이블의 모든 벨류를 복사 할때 uint8*형식으로 복사를 진행한후 다시 FABCharacterStat*으로 형변환 하는데요
템플릿으로 FABCharacterStat을 받으면 형변환하지 않고 편하게 사용할 수 있을거 같은데 말이죠..
GPT의 답변인데 이게 맞을까요?
DataTable의 각 셀에 저장되는 값은 FString
이 아니라 uint8*
(unsigned 8-bit integer pointer)로 저장될 때가 있습니다. 이는 다양한 데이터 형식을 다루기 위한 유연성을 제공합니다. uint8*
는 메모리의 원시 데이터를 가리키는 포인터로, 이를 사용하여 다양한 데이터 형식을 저장할 수 있습니다.
예를 들어, DataTable에서는 문자열, 숫자, 구조체 등 다양한 데이터를 저장할 수 있습니다. uint8*
는 이러한 데이터 형식을 표현하는 데 사용됩니다. 그리고 데이터를 사용할 때는 필요에 따라 해당 데이터 형식으로 변환하여 사용할 수 있습니다.
따라서 DataTable이 uint8*
를 사용하는 이유는 데이터의 다양성과 유연성을 제공하기 위함이며, 이를 통해 사용자가 필요에 따라 다양한 데이터 형식을 DataTable에 저장하고 활용할 수 있습니다.
답변 1
0
uint8은 BYTE인데, 가장 무난하게 사용할 수 있는 데이터 배열(스트림)의 타입입니다. 아무래도 범용적으로 사용해야하다보니, BYTE 배열로 우선 선언하고 필요할 때마다 형변환시키도록 설계한 것 같습니다. 형변환이 부하가 걸리는 것은 아니니.
가장 무난하게 범용적으로 사용할수있는 타입이라서 그렇군요.. 감사합니다!!!