gpt4 book ai didi

f# - 将大序列作为函数参数传递

转载 作者:行者123 更新时间:2023-12-03 18:26:49 25 4
gpt4 key购买 nike

这确实是一个简单的问题(但我似乎无法在 MSDN 文档中找到答案)。

如果我在 F# 中将大序列和对象作为函数参数传递,除非我提供 byref 关键字,否则它们是否总是按值复制?问题是,我无意修改参数,但同时,我不希望每次调用函数时都复制大对象。

最佳答案

我不同意人们在这里使用的术语。

我将其表述为:.NET 中的所有内容默认情况下都是按值传递的,异常(exception)情况是例如refout C# 和 byref 中的参数F#中的参数。但是,序列和数组以及大多数其他类型(结构和基元除外)都是对象引用,这意味着当您将它们作为参数(按值)传递时,您仅传递对实体的引用,并且调用者和被调用者共享堆上相同的实际实体。所以引用是按值传递的,但引用本身只是小东西,而它们指向的对象实体(包含所有数据)是在堆上共享的大东西。

关于f# - 将大序列作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224352/

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