" ^"是指什么时候它在一个类型前?
示例:
int:^ T - > INT
string:^ T - >串
答案 0 :(得分:8)
这表示Statically Resolved Type Parameter
来自MSDN的:
静态解析的类型参数是一个类型参数 在编译时而不是在运行时替换为实际类型。 它们前面有一个插入符号(^)。
所以它与'T
非常相似,但您可以使用它来提供成员约束,编译器将在编译时解析它们(显然) - 通常您只是使用inline
并且类型推断将为您解决 - 但是有一些相当高级的技巧(for example 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)
将添加这样的约束以指示这将适用于所有数字类型(它将成员约束添加到静态运算符(+)
)