f# - F# 函数中的类 C++ 静态变量

标签 f# closures mutable ref

F#中是否有一些模拟?就像是

let f () =
   let mutable static a = 0
   ...

?

最佳答案

如果你脱糖 let f () = ...let f = fun () -> ... ,可以放a的声明内部定义f , 但在函数开始之前。这将使函数关闭 a同时保持a本地到 f .这样做的问题是您可能无法关闭可变变量,因此您需要使用 ref 代替:

let f =
    let a = ref 0
    fun () ->
        ....

关于f# - F# 函数中的类 C++ 静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26233204/

相关文章:

f# - F# 中的构造函数 xml 文档?

f# - 递归同步比递归异步更快

python - 多次将 numpy.argpartition() 分配给列表元素时出现内存泄漏

具有多种表示形式的项目的 C++ 设计模式

haskell - 如何使用简单的技术用我自己的底层表示(类似于 STRef 或 STArray)在 ST-monad 中实现操作?

f# - 管道运算符(operator)为什么工作?

f# - 空间改变类型?

function - Golang 闭包不存储捕获的变量?

python - 在 exec 中用空局部变量列表理解 : NameError

javascript - TypeScript 闭包——一个 "almost"的解决方案