f# - F#中括号的使用

标签 f#

我在理解 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/

相关文章:

types - 什么时候更喜欢F#中的无类型引用而不是有类型的引用?

f# - F# 语言引用文档是否以离线格式(PDF、CHM)提供?

f#:使用 "match/with" block ,不含 "with"

exception-handling - 如何忽略 F# 中的异常

list - 从F#中的列表中切片类似的功能

f# - C# 到 F# 转换公共(public)部分类设备 : MarshalByRefObject

c# - 如何以类似于 C# 区域的方式组织 F# 代码?

f# - 使用一个枚举应用多个聚合函数

f# - 如何使用GitVersion环境变量

f# - 使用 FsCheck 生成复杂对象时出现不一致的 IEnumerable ArgumentException