int string : ^T -> string 最佳答案 这表示 Statically Resolved Type Parameter-6ren">
gpt4 book ai didi

f# - "^"在类型前面时是什么意思?

转载 作者:行者123 更新时间:2023-12-01 09:20:10 25 4
gpt4 key购买 nike

类型前面的“^”是什么意思?

例子:

int : ^T -> int

string : ^T -> string

最佳答案

这表示 Statically Resolved Type Parameter

来自 MSDN:

A statically resolved type parameter is a type parameter that is replaced with an actual type at compile time instead of at run time. They are preceded by a caret (^) symbol.

所以它与 '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)

将添加这样一个约束以表明这将适用于所有数字类型(它将向静态运算符添加成员约束(+))

关于f# - "^"在类型前面时是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com