gpt4 book ai didi

具有相同参数号的 F# 函数重载

转载 作者:行者123 更新时间:2023-12-05 00:41:37 24 4
gpt4 key购买 nike

我有一个简单的 F# 函数 cost 接收用于某些计算的单个参数 amount。它是一个 float,所以我需要传入类似 cost 33.0 的内容,在数学上与 cost 33 相同。编译器提示它,我明白为什么,但我希望能够这样调用它,我试图创建另一个名称相同的函数并为它们使用类型注释,我也收到编译器警告。有没有办法像 C# 那样做到这一点?

最佳答案

在 F# 中有两种机制可以实现这一点,并且都不依赖于“像 C# 那样”的隐式转换:

(一)方法重载

 type Sample =
static member cost (amount: float) =
amount |> calculations
static member cost (amount: int) =
(amount |> float) |> calculations

Sample.cost 10 // compiles OK
Sample.cost 10. // compiles OK

(B) Using inlining

let inline cost amount =
amount + amount

cost 10 // compiles OK
cost 10. // compiles OK

关于具有相同参数号的 F# 函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635277/

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