角色有很多帐户,帐户有很多角色。
如何模拟避免导入周期?
在$ GOROOT里面
sandbox/
├── hello-world.go
├── orm
│ ├── main
│ │ └── main.go
│ └── model
│ ├── account
│ │ └── account.go
│ └── role
│ └── role.go
cat sandbox / orm / main / main.go
package main
import (
"sandbox/orm/model/account"
)
func main() {
a := account.Account
}
cat sandbox / orm / model / account / account.go
package account
import (
"sandbox/orm/model/role"
)
type Account struct {
id int
roles []role.Role
}
cat sandbox / orm / model / role / role.go
package role
import (
"sandbox/orm/model/account"
)
type Account struct {
id int
roles []role.Role
}
答案 0 :(得分:4)
这在“Cyclic dependencies and interfaces in golang”中得到了解决,特别是:
使用基本类型和界面替换API中的需要导入的对象类型。
或者将它们放在同一个包装中。
我在““Mutual” package import in Golang”中展示了一个例子。