gpt4 book ai didi

go - 接口(interface)内部以接口(interface)为参数的方法

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

我正在声明一个接口(interface)

type comparable interface {
GetKey() float32
Compare(comparable) int

}

并通过创建这个结构来实现这个接口(interface)
type Note struct {
id int
text string
priority float32

}
func (note Note) GetKey() float32 {
return note.priority

}
func (note Note) Compare(note2 Note) int {
if note.priority < note2.priority {
return -1
} else if note.priority > note2.priority {
return 1
} else {
return 0
}

}

但是,当我将注释对象传递给接受可比较接口(interface)作为参数的函数时,我收到“方法比较的错误类型”错误。

我错过了什么或做错了什么?请帮忙

提前致谢

最佳答案

您没有实现 comparable因为你使用 Note在比较方法中不是 comparable . Compare(note2 Note)Compare(comparable) 不同.

使用comparable在比较方法中实现 comaprable界面

func (note Note) Compare(note2 comparable) int {
if note.GetKey()< note2.GetKey() {
return -1
} else if note.GetKey()> note2.GetKey() {
return 1
} else {
return 0
}
}

关于go - 接口(interface)内部以接口(interface)为参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61543108/

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