F# - 需要明确删除ref cell吗?

use*_*285 4 heap f# pointers ref delete-operator

ref cell是否像指针那样引用堆上的数据,需要明确删除?我在网上看到的所有例子都没有明确的删除调用.

Hon*_*tan 5

你会如何明确地删除它们?

另外,如果你看一下源代码,你会发现ref cell类型只是一个可变字段的不可变包装器,:=!运算符只是getter/setter调用.

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

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