use*_*285 4 heap f# pointers ref delete-operator
ref cell是否像指针那样引用堆上的数据,需要明确删除?我在网上看到的所有例子都没有明确的删除调用.
你会如何明确地删除它们?
另外,如果你看一下源代码,你会发现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)