gpt4 book ai didi

generics - 如何比较泛型类型的值?

转载 作者:行者123 更新时间:2023-12-03 23:32:20 24 4
gpt4 key购买 nike

考虑这样的代码:

fun equals(a : 'a,b : 'a) =
a = b;

我的代码更大,但这就是问题所在。 SML 报告“错误:运算符和操作数不一致”。

我是 SML 的初学者,我不知道它为什么会提示。这是否类似于 C# 问题,您不能真正比较任何类型的两个值,但您必须对类型使用默认相等比较器?我是否应该在 'a 上添加一些约束(我希望我将它正确地写为泛型类型)?

最佳答案

使用 'a 代替 'a

前面有两个引号而不是一个的类型是相等类型,这意味着 = 运算符对其起作用。这也意味着你不能在非相等类型的东西上调用你的函数。

此外,您实际上不必编写类型。如果你这样做:

fun equals (a,b) = a = b;

SML 将推断类型。

关于generics - 如何比较泛型类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342698/

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