F#中printfn函数的返回类型究竟是什么?

f#

我在这里查找了 printfn 的文档,它是这样说的:

printfn 格式

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

format : TextWriterFormat<'T> 格式化程序。

返回: 'T 格式化结果。

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

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

它指出v( printfn 的返回值)的类型为unit

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

回答

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

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


以上是F#中printfn函数的返回类型究竟是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>