小编ste*_*ven的帖子

封装可变状态

我正在通过F#Wikibook工作,我已经进入了参考单元格的部分,其中出现以下代码片段:

let incr =
    let counter = ref 0
    fun () ->
        counter := !counter + 1
        !counter;;
Run Code Online (Sandbox Code Playgroud)

然后调用此函数三次,分别给出值1,2和3.有人可以解释为什么这个函数每次调用时都不会返回1吗?我解释这段代码的方式(显然不是正确的解释,因此问题)是,首先,声明参考单元格'counter',内容等于0,然后'counter'的内容递增1并且然后使用匿名函数解除引用.由于每次调用incr();;声明'counter'都有内容0,我不明白为什么调用incr();;不会每次只返回1.

谁能纠正我的理解?

提前致谢.

f#

4
推荐指数
1
解决办法
164
查看次数

标签 统计

f# ×1