pointers - F# - 是否需要明确删除引用单元格?

标签 pointers f# heap-memory delete-operator ref

从某种意义上说,引用单元是否像指针一样引用堆上的数据,并且需要显式删除?我在网上看到的所有示例都没有明确的删除调用。

最佳答案

您将如何明确删除它们?

另外,如果你看看 source code你会看到 ref 单元格类型只是一个可变字段上的不可变包装器,而 :=!运营商是 simply getter/setter calls .

你可以很容易地以类似的方式实现 ref :

type Ref<'a> = { mutable value: 'a }
let (:=) (r: Ref<_>) v = r.value <- v
let (!) (r: Ref<_>) = r.value

关于pointers - F# - 是否需要明确删除引用单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639257/

相关文章:

c++ - 从静态方法访问非静态成员的工作示例

f# - 用可区分联合和记录类型表示浮点

c - 堆内存澄清

java - 是否有工具可以在不加载完整 hprof 文件的情况下分析大型 Java 堆转储?

c - 指针定义上的语法错误似乎有效(来自工作库)SDCC

pointers - 通过引用设置结构中的字段

C从结构中访问结构指针变量元素

ruby - 相当于 FSharp 中 Ruby 的 Enumerable#each_slice 方法

f# - F# 中的函数 'startsWithVowel'

由于堆中存在大量 JSP/HTML 内容而导致 Java OutOfMemory