gpt4 book ai didi

generics - 为什么 F# 中的这个接口(interface)实现无法编译?

转载 作者:行者123 更新时间:2023-12-03 06:35:36 24 4
gpt4 key购买 nike

我正在尝试实现IEquatable<T>对于 F# 中的特定类。但是,在这种情况下这样做时,我遇到了意外错误。

我有以下代码:

type Foo private (name : string) = 

member this.Name = name

member this.Equals (other : Foo) = this.Name = other.Name

override this.Equals other =
match other with | :? Foo as foo -> this.Equals foo | _ -> false

override this.GetHashCode () = this.Name.GetHashCode ()

interface IEquatable<Foo> with
this.Equals other = this.Equals other

这不能编译。我收到以下错误:“成员定义中出现意外的关键字“with””。此外,我收到“可能不正确的缩进...”警告。我不确定问题是什么,因为在我看来,上述内容F# 中接口(interface)通常是这样实现的。为什么上面的代码不能编译?

最佳答案

好吧,我自己可以回答这个问题。我没有将成员放在实现之前。交换

this.Equals other = this.Equals other

member this.Equals other = this.Equals other

让一切都好起来。事实上,编译器概述了“with”关键字作为问题,这让我很失望。

关于generics - 为什么 F# 中的这个接口(interface)实现无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44758279/

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