我在理解 F# 中括号的用法时遇到问题。用一个简单的例子来说明,以下 2 个控制台应用程序的行为非常不同。第一个不等我输入任何内容:
open System
let Main =
Console.WriteLine "Hello"
Console.ReadLine
而第二个是:
open System
let Main =
Console.WriteLine "Hello"
Console.ReadLine()
我应该如何理解差异?
最佳答案
如果函数不接受参数,则指定单位值 () 作为参数,如以下代码行所示。
initializeApp()
函数名本身就是一个函数值,所以如果省略表示单位值的括号,函数只是被引用,而不是被调用。
http://msdn.microsoft.com/en-us/library/dd233229.aspx
这就是为什么你必须做
Console.ReadLine()
而不是 Console.ReadLine
(后者返回一个函数委托(delegate))
关于f# - F#中括号的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222759/