gpt4 book ai didi

f# - F# 的较短类型约束

转载 作者:行者123 更新时间:2023-12-01 01:01:57 26 4
gpt4 key购买 nike

我正在练习 F#,并且我已经为 F# 实现了一个类型受限的比较函数。在C#中,它是通过这个实现的

// in C#
static int cmp<T>(T x, T y) where T: System.IComparable<T>
{
return x.CompareTo(y);
}

但是,在 F# 中,我想出的最好方法是这样。

(* in F# *)
let cmp (x: 'a when 'a :> 'a System.IComparable) (y: 'a when 'a :> 'a System.IComparable)
= x.CompareTo(y)

我试过下面的那个,但没用

let cmp (x: 'a) (y: 'a) when 'a :> 'a System.IComparable
= x.CompareTo(y)

我的工作 F# 示例是最短路径还是有其他路径?

最佳答案

另一种(更简洁的,IMO)实现方法是向函数添加显式泛型类型参数,如下所示:

let cmp<'T when 'T :> System.IComparable<'T>> (x : 'T) (y : 'T) =
x.CompareTo y

关于f# - F# 的较短类型约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994964/

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