【发布时间】:2011-09-02 20:06:48
【问题描述】:
我是 F# 初学者。我运行了这段代码:
let printMsg() =
let msg = "Important"
printfn "%s" msg
let innerMsgChange() =
let msg = "Very Important"
printfn "%s" msg
printfn "%s" msg
innerMsgChange()
printfn "%s" msg
printMsg()
我预计文本输出将按以下顺序:
重要,非常重要,重要,重要
或者这个
重要,非常重要,非常重要,重要
但我得到了这个
重要,重要,非常重要,重要
这些函数似乎不符合代码执行顺序。为什么会这样,我是不是错过了什么?
【问题讨论】:
-
你的函数在你调用它之前不会执行。您有两个名为
msg的变量——一个隐藏另一个。 -
您可能会发现这个问题有助于查看:stackoverflow.com/questions/2478079/…
标签: f#