gpt4 book ai didi

intersystems-cache - ByRef 和 Output 方法参数修饰符有什么区别?

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

一切都在主题中,真的。

我看不出 x 的这两种方法在行为上有什么区别:

// first version
Method m(ByRef x As whatever)
{
// play with x
}

// second version
Method m(Output x As whatever)
{
// play with x
}

这两个修饰符的存在一定有某种原因,但是我对语言的“掌握”(嗯)不足以理解其中的区别。到目前为止,我已尝试阅读文档、搜索文档等,但无济于事。

那么,这两个参数修饰符之间有什么区别?

最佳答案

嗯,那些只是“美化器”,它们在实际语言行为方面并没有做太多,仅用于提供文档。想法是记录为 ByRef 的参数提供输入和输出,例如您可以传递一个数组进行排序,而输出参数仅提供输出,例如错误列表。输出修饰符是后来引入的,对于这两种用例,很多系统代码仍然使用 ByRef。

参数是否实际通过引用传递仅由方法调用者决定,关键字并不重要。您将调用您的方法作为 ..m(.parameter) 以通过引用传递变量,而 ..m(parameter) 以通过值传递变量。

关于intersystems-cache - ByRef 和 Output 方法参数修饰符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422755/

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