【发布时间】:2024-04-11 11:50:02
【问题描述】:
为什么 golang 中的 list/ring 类型对单个项目使用额外的结构 Element/Ring 而不是 interface{} ?我假设有一些好处,但我看不到。
编辑:我的意思是询问 api 而不是在实现中使用 Element/Ring。实现仍然可以使用非导出类型,但让 api 提供和获取接口{},那么为什么要让用户进出 Element/Ring?
Edit2:例如,列表 Back() 函数可能类似于
func (l *List) Back() interface{} {
if l.len == 0 {
return nil
}
return l.root.prev.Value
}
列表仍然在内部使用 Element 但它只是元素(未导出),因为它不会返回它而只返回值。
【问题讨论】: