gpt4 book ai didi

go - 如何在 n--n 关系中避免 "import cycle"

转载 作者:IT王子 更新时间:2023-10-29 01:27:40 25 4
gpt4 key购买 nike

一个角色有多个账户,一个账户有多个角色。

如何模拟避免导入周期?

在我的 $GOROOT 中

sandbox/
├── hello-world.go
├── orm
│   ├── main
│   │   └── main.go
│   └── model
│   ├── account
│   │   └── account.go
│   └── role
│   └── role.go

猫沙箱/orm/main/main.go

package main

import (
"sandbox/orm/model/account"
)

func main() {

a := account.Account
}

cat 沙箱/orm/model/account/account.go

package account

import (
"sandbox/orm/model/role"
)

type Account struct {
id int
roles []role.Role
}

cat 沙箱/orm/model/role/role.go

package role

import (
"sandbox/orm/model/account"
)

type Account struct {
id int
roles []role.Role
}

最佳答案

这在“Cyclic dependencies and interfaces in golang”中得到解决,特别是:

Replace import-requiring object types in APIs with basic types and interface.

或者将它们放在同一个包中。

我在““Mutual” package import in Golang”中展示了一个例子。

关于go - 如何在 n--n 关系中避免 "import cycle",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26841308/

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