gpt4 book ai didi

parameter-passing - "pass-by-name"是什么?它到底是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 07:48:47 26 4
gpt4 key购买 nike

我已经查过维基百科并用 google 搜索过,但我仍然无法理解 ALGOL 60 中的按名称传递的工作原理。

最佳答案

我在 Pass-By-Name Parameter Passing 找到了很好的解释。本质上,函数体是在将实际参数以文本方式替换到函数体后在调用时解释的。从这个意义上说,评估方法类似于 C 预处理器宏的评估方法。

通过将实际参数代入函数体中,函数体既可以读取也可以写入给定的参数。从这个意义上说,评估方法类似于按引用传递。不同之处在于,由于通过名称传递参数是在函数内部进行评估的,因此诸如 a[i] 之类的参数取决于 的当前值i 在函数内部,而不是在调用函数之前引用 a[i] 处的值。

我上面链接的页面有一些更多示例,说明了传递名称既有用又危险的地方。如今,通过名称传递实现的技术在很大程度上已被其他更安全的技术(例如按引用传递和 lambda 函数)所取代。

关于parameter-passing - "pass-by-name"是什么?它到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838079/

26 4 0