gpt4 book ai didi

delphi - "var"和 "out"参数有什么区别?

转载 作者:行者123 更新时间:2023-12-03 14:32:36 24 4
gpt4 key购买 nike

var声明的参数和用out声明的参数有什么区别?编译器如何以不同的方式对待它们(例如,通过生成不同的代码,或通过更改它发出的诊断)?或者不同的修饰符是否仅仅允许程序员记录参数的预期用途?参数的类型对此事有什么影响?

最佳答案

var 参数将通过引用传递,仅此而已。

out 参数也通过引用传递,但假定输入值不相关。对于托管类型(字符串、接口(interface)等),编译器将通过在例程开始之前清除变量来强制执行此操作,相当于编写 param := nil。对于非托管类型,编译器以与 var 相同的方式实现 out

请注意,托管参数的清除是在调用站点执行的,因此为函数生成的代码不会随 outvar 参数而变化。

关于delphi - "var"和 "out"参数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14507310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com