【问题标题】:What exactly is the return type of the printfn function in F#?F# 中 printfn 函数的返回类型到底是什么?
【发布时间】:2021-02-05 12:39:24
【问题描述】:

我查阅了 printfn here 的文档,它是这么写的:

printfn 格式

使用给定格式打印到标准输出,并添加换行符。

format : TextWriterFormat 格式化程序。

返回:'T 格式化结果。

但是如果我在 FSI 中输入以下内容

> let v = printfn "Hello";;
Hello
val v : unit = ()

它声明v(printfn 的返回值)是unit 类型。

这似乎不一致,但我想我在这里遗漏了一些东西,所以有人可以帮助我吗?

【问题讨论】:

    标签: f#


    【解决方案1】:

    这并不矛盾。在您的示例中,格式为TextWriterFormat<unit> 类型,因此最终返回类型为unit,因为'Tunit

    如果您写了let v = printfn "Hello %s",那么v 的类型将是string -> unit。这就是 F# 提供类型安全的字符串格式的方式。

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多