对于写惯c++的来说,一个函数返回指针时处理失败可以返回空指针,但如果返回值类型就很难去判断,同时为了避免使用异常,以返回布尔,通过指针来导出返回的参数是很常见的做法。但在虚幻内的结构体USTRUCT类型上标记为指针类型时,将会收到编译错误。对以下的四种传递和返回方式与蓝图中生成的阶段做一个对比:分别为
- 普通的值类型传递
- 常引用传递
- 引用传递
- 返回值类型对象
UFUNCTION(BlueprintCallable) static bool TestValue(FConfig Config) UFUNCTION(BlueprintCallable) static bool TestConstRef(const FConfig& Config) UFUNCTION(BlueprintCallable) static bool TestRef(FConfig& Config) UFUNCTION(BlueprintCallable) static FConfig TestRetValue()
蓝图预览:
其中值拷贝传递方式与常引用在蓝图使用上一致。而使用引用传递时,该ustruct无法在蓝图中传入,仅可以传出。可以看出引用代替的传出指针的功能,只不过指针可以为空,而引用是不可以为空的,所以无论如何都会构造个ustruct对象,蓝图在这里帮助开发者自动构造,而不可以像c++中正常的引用,在ue的概念中,ustruct就应该像纯值类型一样对待。
文章评论