gpt4 book ai didi

go - golang 有类似泛型 (java) 的东西吗?

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:03 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why no generics in Go?

(5 个回答)


7年前关闭。




我想在 golang 上写类似 CRUD 的东西。我看到像

type CRUD interface {
Save(entity interface{})() // done
Update(entity interface{})() // done
Delete(entity interface{})() // done
All() []interface{} // problem is here
}

我有几个模型结构。
type User struct {
Login string
Password string
}

type Comment struct {
UserId int64
Message string
CreatedAt int64
}

我有一些服务:
// Struct should implement interface CRUD and use instead of interface{} User struct
type UserService struct {
Txn SomeStructForContext
}

func (rec *UserService) Save(entity interface{}) {
user := entity.(*model.User)
// TODO operation with user
}

// All the same with Update and Delete

func (rec *UserService) All() ([]interface{}) {
// TODO: I can't convert User struct array for return
}

我希望,它会解释什么问题

最佳答案

您正在尝试转换 []ConcreteType[]interface{} ,这不会隐式工作。

但是你可以转换[]ConcreteTypeinterface{}然后将其投回 []ConcreteType.

关于go - golang 有类似泛型 (java) 的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039018/

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