小编Tit*_*tou的帖子

Golang Circular导入结构

我的代码很简单.

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的初学者

go circular-reference

0
推荐指数
1
解决办法
534
查看次数

标签 统计

circular-reference ×1

go ×1