我正在学习F#,当我在Visual Studio中键入任何代码并在 F#Interactive 上运行它时,它会向我显示
之类的内容val foo : x:'a -> 'a
我想这意味着foo
是一个接收类型的参数x
的函数,并返回相同x类型的值。
但是 '
是什么意思?许多功能也在intellisense上展示了这样的东西。
答案 0 :(得分:11)
单引号('
)表示该参数的类型是通用的。可以推断出,就像您给出的示例一样,或者可以明确应用它。
有关详细信息,请参阅Implicitly Generic Constructs下的here。
答案 1 :(得分:9)
'a
表示一个类型变量,换言之,尚未确定的类型(并且尚未确定)。
请注意,这与a'
不同,{{1}}是一个常规变量,其名称为两个字符: a 和'。与C#等其他语言相反,单引号是F#变量名中的允许字符,除了名称中的第一个字符用于消除上述类型变量的歧义。