gpt4 book ai didi

syntax - F# 语法解释 (^)

转载 作者:行者123 更新时间:2023-12-02 09:38:06 25 4
gpt4 key购买 nike

好吧,抱歉标题不好。

考虑以下函数:

let inline getName arg =
( ^a : (member Name : string) arg)

我知道它的作用,但我知道那只是因为我复制粘贴了它。

它说:给定一个arg,返回argname成员。

但是我没有得到第一部分 ^a ,也没有得到 : (member Name : string)

我所知道的是最后一个arg正在应用^a : (member Name : string)函数的arg值.

最佳答案

^ 用于指定 type parameter is statically resolved ,这意味着类型将在编译时解析,而不是在运行时解析。

第二部分是generic constraint它指定该类型必须具有一个名为 Name 且具有给定签名的成员,在本例中为字符串属性。您显示的语法是如何实际调用成员,编译器正在推断函数的通用约束,但您也可以显式指定约束,尽管没有必要。

let inline getName (arg : ^a when ^a : (member Name : string)) =
( ^a : (member Name : string) arg)

关于syntax - F# 语法解释 (^),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138720/

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