支持使用 Go 1.27 通用方法的 db.G[T]()
作者: crypticpi创建于 2026年9月1日更新于 2026年9月1日
标签type:feature_request
□ 描述特征
Go 1.27支持通用方法,
开始 db.G [用户] ()
`(*gorm.DB.)G[T]`应授权现有的`gorm.G[T](db, options.) ' 实施,因此两种形式都有相同的行为和选择。
对于后向兼容性 :
- 仅为Go 1.27和较新者使用版本构建约束来汇编方法。
- 保持`Gorm.G[T](db)'的可用性和不变。
- 不要提高GORM支持的最小值GO版本.
- 用Go 1.27+测试接收器方法,并继续在旧支持的Go版本上测试包级API.
□动机
Go 1.27之前,语言不允许通用方法,因此GORM不得不将这个API暴露为包级函数:
开始
(db) [用户]基于接收器的形式更容易发现,在查询链中自然地读取,并避免了软件包名称和数据库参数的重复:
开始 用户,错误:= db.G[用户] ()。 在哪里("活性=",真实). 查找( ctx)
□ 相关问题
执行:#7849内容来源: go-gorm/gorm