gpt4 book ai didi

f# - 在 F# 中调用对象方法的简写

转载 作者:行者123 更新时间:2023-12-03 21:33:14 24 4
gpt4 key购买 nike

有没有一种方法可以“生成”这样的函数:

fun x -> x.ToString

我希望能够将实例方法转换为静态方法,该方法将“this”作为参数,如下所示:

items |> Seq.filter my_predicate |> Seq.map Object.ToString

最佳答案

这已在 F# 中心讨论过多次。例如,参见instance methods as functions 。这是一个非常棘手的问题,因此据我所知,没有计划在 F# 的第一个版本中提供类似的内容,但最终如果有这样的内容那就太好了:-)。

您可以做的另一个解决方法是在 F# 中添加静态成员作为扩展方法:

type System.Object with
static member ObjToString(o:obj) = o.ToString()

open System
[ 1 .. 10 ] |> Seq.map Object.ObjToString;;

但这有点难看。另外,似乎只有当您为该方法使用不同的名称时,这才有效。我猜想 F# 不允许您使用扩展方法重载现有方法,并且始终更喜欢内在方法。

关于f# - 在 F# 中调用对象方法的简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677526/

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