gpt4 book ai didi

d - D 的 "out"存储类有什么用?

转载 作者:行者123 更新时间:2023-12-04 03:17:14 25 4
gpt4 key购买 nike

我知道 out 的工作原理与 ref 非常相似,只是它在进入函数时将传递的参数初始化为其默认值。

我的问题是在什么情况下这会“在函数输入时重置变量”有用?

如果有人可以向我展示 outref 更有用的示例,那就太好了。

最佳答案

refout 之间的主要区别是意图。当使用 ref 时,预计传入的值将被函数使用。并且该功能可能会也可能不会设置它。如果需要,您甚至可以使用 const ref,这意味着传入的变量不会被复制,但也不能更改。

另一方面, const out 没有任何意义,因为 out 的目的是在函数中设置变量。使用 out 本质上是一种向函数添加另一个返回值的方法。 ref 可以用于该目的,但使用 ref 并不向调用者表示不会使用传入的值,甚至不一定会分配变量,而 out 表示不会使用该值并且变量将被分配给。
out 将变量设置为其默认值的原因是为了避免错误。如果函数的目的是使用 out 参数作为另一个返回值,那么您通常不希望该函数受到传入值的影响。 通过将 out 参数设置为其默认值,它可以保证无论传入的是什么,变量对于该函数将始终是相同的值,因此您可以避免因函数意外依赖该值而导致的错误。

现在,没有要求在函数内分配 out 参数,但它确实向调用者传达了这就是意图,并且无论如何它都会为其分配默认值,因此从调用者的角度来看,out 参数始终是分配了一个值(即使它是默认值)。因此,如果有意义的话,该函数可以自由地不设置 out 参数(例如,如果默认值是在某些情况下应该“返回”的值)。

关于d - D 的 "out"存储类有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658885/

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