这表示静态分辨的类型参数
来自MSDN:
静态解析的类型参数是一个类型参数,在编译时而不是在运行时用实际类型替换.它们前面有一个插入符号(^).
所以它非常相似,'T但你可以使用它来给出成员约束,编译器会在编译时解析它们(显然) - 通常你只是使用inline而且类型推断会为你解决 - 但是有一些相当的使用此(不常用)功能的高级技巧(例如FsControl)
let inline add a b = a + b
val inline add :
a: ^a -> b: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
Run Code Online (Sandbox Code Playgroud)
将添加这样的约束以指示这将适用于所有数字类型(它将向静态运算符添加成员约束(+))