当我使用gormigrate编写数据库迁移时,我需要在函数范围内的两个结构之间定义多对多关系。但在 golang 1.19 或 1.18 以下将无法编译package mainimport "fmt"func main() { type Student struct { Courses []*Course // [Error] ./prog.go:7:14: undefined: Course } type Course struct { Students []*Student } fmt.Printf("This won't compile")}然而,将定义移到函数之外就可以了package mainimport "fmt"type Student struct { Courses []*Course}type Course struct { Students []*Student}func main() { fmt.Printf("This works")}可以在https://go.dev/play/p/GI53hhlUTbk上自己尝试为什么会这样?我怎样才能让它在功能范围内工作?有没有类似C++中typedef的语法,可以先声明一个struct,再定义?
添加回答
举报
0/150
提交
取消