【发布时间】:2017-01-22 03:41:07
【问题描述】:
我只是想通过阅读 Wikibook 来学习一些 F#:https://en.wikibooks.org/wiki/F_Sharp_Programming/
考虑以下示例: https://en.wikibooks.org/wiki/F_Sharp_Programming/Mutable_Data
open System
let withSideEffects x =
x := "assigned from withSideEffects function"
let refTest() =
let msg = ref "hello"
printfn "%s" !msg
let setMsg() =
msg := "world"
setMsg()
printfn "%s" !msg
withSideEffects msg
printfn "%s" !msg
let main() =
refTest()
Console.ReadKey(true) |> ignore
main()
我意识到他们把 () 放在每个有副作用的函数之后。删除大括号同样可以很好地编译并将类型从 unit -> unit 更改为 unit。
问题:
- 这是 F# 程序员之间的某种默契吗?
- 这两种语法中的一种有什么好处吗?
【问题讨论】: