解释F#中的符号

时间:2013-07-28 19:41:59

标签: f#

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

之类的内容
val foo : x:'a -> 'a

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

但是 '是什么意思?许多功能也在intellisense上展示了这样的东西。

2 个答案:

答案 0 :(得分:11)

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

有关详细信息,请参阅Implicitly Generic Constructs下的here

答案 1 :(得分:9)

'a表示一个类型变量,换言之,尚未确定的类型(并且尚未确定)。

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