我的代码很简单.
Project/
main.go
pokemons/
pokemon.go
pokeTrainers/
pokeTrainer.go
Run Code Online (Sandbox Code Playgroud)
我有一些口袋妖怪训练师,定义如下:
package pokeTrainers
import "../pokemons"
type PokeTrainer struct {
name string
pokemon []Pokemon
}
Run Code Online (Sandbox Code Playgroud)
还有一些口袋妖怪:
package pokemons
import "../pokeTrainers"
type Pokemon struct {
name string
pokeTrainers PokeTrainer
}
Run Code Online (Sandbox Code Playgroud)
主要包装是:
package main
import (
"fmt"
"./pokemons"
"./pokeTrainers"
)
func main() {
fmt.Printf("ERROR CIRCULAR IMPORT")
Run Code Online (Sandbox Code Playgroud)
一如既往我有错误,我将其复制粘贴到谷歌上.我知道什么是循环导入以及人们如何通过接口来修复它以使用来自另一个包的方法而无需导入它.但在我的情况下,问题不是使用方法,而是在另一个包中定义的真实类型.
所以你可能会说:"你是个笨蛋!你只需把所有东西放在同一个包装上就可以了!" 对不起,我来自Java,我希望我的代码保持干净.;)
我看到这个链接建议使用第三方软件包?但是你必须想象我没有pokemon和pokeTrainer,我有更多的包里面有一个类型和很多方法..
你怎么看 ?如何正确修复此错误?我是Go的初学者