无涯教程-F# - 类型推断

38 阅读1分钟

本主题是关于F#编译器如何推断值、函数、变量、参数和返回值的类型。

类型推断意味着当您编写代码时,您不需要指定值或变量的类型。F#编译器功能强大,足以推断值的类型。省略F#类型信息并不意味着F#是动态类型语言。F#是强静态类型语言。这意味着编译器在代码编译过程中推导出自动类型。

它使代码更具可读性,尺寸更小,并节省了编写更多代码的时间。

参数和返回类型推断

您不需要在参数列表中指定参数类型。编译器根据上下文推断类型。如果未指定类型,则会推断其为泛型。如果代码使用值的方式不一致,导致没有单个推断类型,编译器将报告错误。

函数的返回类型由函数中的最后一个表达式确定。

参数和返回类型的F#推断示例

let add a b = //在这里,所有参数都被推断为 int,因为在调用期间传递了值 a+b //此函数的返回类型为 int,因为此表达式的类型为 int。 printf "%d" (add 10 20)

输出:

30

F#类型自动推断

如果代码没有显式指定任何类型,则编译器认为是泛型类型。这称为自动推断。它有助于在不增加复杂性的情况下编写泛型代码。

参考链接

www.learnfk.com/fsharp/f-sh…