AssetManager 챕터 강의 중 "FSoftObjectPath GetAssetPathByName(const FName& AssetName)" 함수 Return Type 관련 질문이 있습니다.
290
작성한 질문수 3
AssetManager 챕터 강의 중, 다음의 두 함수를 추가하게 되는데,
FSoftObjectPath GetAssetPathByName(const FName& AssetName);
const FAssetSet& GetAssetSetByLabel(const FName& Label);
첫번째 함수인 "FSoftObjectPath GetAssetPathByName(const FName& AssetName);" 경우에는
왜 "const FAssetSet& GetAssetSetByLabel(const FName& Label);" 처럼 "FSoftObjectPath&" Return 타입이 아닌, "FSoftObjectPath" Return 타입으로 작업하셨는지 문의 드려봅니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
JDY님의 질문에 답변드리자면, 프로그래밍에서 함수의 반환 타입을 결정할 때는 여러 요소를 고려해야 하며, 그 중 하나가 반환되는 객체의 수명과 관리 방법입니다.
“FSoftObjectPath GetAssetPathByName(const FName& AssetName);” 함수가 “FSoftObjectPath” 타입을 그대로 반환하는 이유는 FSoftObjectPath 객체가 값을 복사하는 데 비용이 크지 않거나, 반환된 객체가 호출 지점에서 독립적으로 사용되어야 하는 경우일 수 있습니다. 반면에 “const FAssetSet& GetAssetSetByLabel(const FName& Label);“과 같이 참조자(&)를 반환 타입으로 사용하는 경우는 해당 객체가 무거운 객체이거나 함수 외부에서 수정하지 않고 사용하기 위함일 수 있는데, 이는 해당 객체의 메모리를 효율적으로 관리하고자 하는 의도일 수 있습니다.
실질적으로 “FSoftObjectPath&“와 “FSoftObjectPath” 반환 타입 사이에서 선택하는 것은 개발자가 함수를 설계하는 과정에서, 함수가 반환하는 객체의 수명, 성능 영향, 그리고 사용하는 컨텍스트를 고려한 결정입니다. 따라서, FSoftObjectPath 객체를 값으로 반환하는 것이 해당 상황에서 더 적합하다고 판단되었을 것입니다.
제공한 정보에서는 특정한 프로그래밍 언어 구조나 방식에 대한 직접적인 설명은 없지만, 일반적인 프로그래밍 원리와 객체 지향 프로그래밍에서의 함수 설계 원칙을 통해 위와 같이 설명드릴 수 있습니다.
1장. 파일 추가 및 삭제 에서 생성할때 에러가 납니다.
0
70
0
3d game 리소스 추출하는 방법
0
156
1
11강 2분 22초. 12강 6분 18초 영상편집오류
0
71
1
GENERATED_BODY() 빨간 밑줄이 사라지지 않습니다
0
127
2
언리얼 프로젝트를 생성할 수 없었습니다(컴파일 실패)
0
313
2
Unreal VS 빌드오류 해결 도저히 못하겠습니다.
0
715
2
WidgetBlueprint 복사 방법 질문
0
64
2
수강생으로서의 고민
0
102
1
13강. 모듈 내 하위 디렉터리 인식 못하는 문제 해결법
0
65
1
UClass 안에 ClassDefaultObject 관련 질문이 있습니다.
0
87
1
해당 강의 중반부부터 싱크가 안맞는 것 같아요
0
75
1
디아블로 방식의 컨트롤에서 타겟 위치로 이동 문제
0
123
2
디아블로 방식의 컨트롤 맨마지막 옵션관련 질문
0
85
2
32. 디아블로 방식의 컨트롤
0
76
1
점프 강의 도중의 질문입니다.
1
104
2
AssetManager 질문
0
96
1
GetAssetByName<UR1InputData>("InputData")) 질문입니다.
0
127
2
Variable Replication
0
122
1
AI #4 질문
0
117
1
언리얼 시스템의 에러? 에 대해서 질문 드립니다.
0
360
1
전혀 이해가 가질 않네요.
9
408
1
의구심이 듭니다
0
361
1
Animation Event영상에서 Notify 대신 Received_Notify()사용
0
124
0
const FObjectInitializer& ObjectInitializer 와 const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()
0
313
1





