12

我正在学习 F#,当我在 Visual Studio 中键入任何代码并在F# Interactive上运行它们时,它会向我显示类似

val foo : x:'a -> 'a

我想这意味着这foo是一个接收x类型参数并返回相同 x 类型的值的函数。

但这意味着什么'许多功能也在智能感知上显示了这样的东西。

4

2 回答 2

15

单引号 ( ') 表示该参数的类型是通用的。可以像您给出的示例一样推断它,也可以显式应用它。

有关更多信息,请参阅隐式通用构造下的此处。

于 2013-07-28T19:55:32.900 回答
14

'a 表示一个类型变量,换句话说,一个尚未确定的类型(也不必确定)。

请注意,这与 不同a',后者是一个名称为两个字符的常规变量:a'。与 C# 等其他语言相反,单引号是 F# 变量名称中允许使用的字符,除了作为名称中的第一个字符以消除上述类型变量的歧义。

于 2013-07-28T20:31:58.363 回答