如何避免n - n关系中的"导入周期"

Jos*_*eta 5 go

角色有很多帐户,帐户有很多角色.

如何模拟避免导入周期?

在我的$ GOROOT里面

sandbox/
??? hello-world.go
??? orm
?   ??? main
?   ?   ??? main.go
?   ??? model
?       ??? account
?       ?   ??? account.go
?       ??? role
?           ??? role.go
Run Code Online (Sandbox Code Playgroud)

猫沙箱/ orm/main/main.go

package main

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

func main() {

    a := account.Account
}
Run Code Online (Sandbox Code Playgroud)

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

package account

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

type Account struct {
    id    int
    roles []role.Role
}
Run Code Online (Sandbox Code Playgroud)

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

package role

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

type Account struct {
    id    int
    roles []role.Role
}
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 4

“ golang 中的循环依赖和接口”中解决了这个问题,特别是:

\n\n
\n

将 API 中需要导入的对象类型替换为基本类型和接口

\n
\n\n

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

\n\n

我在“ \xe2\x80\x9cMutual\xe2\x80\x9d package import in Golang ”中展示了一个示例。

\n