2013-08-20 83 views
0

这是我想要做的,但请帮我下面的情形非常淡化版本:如何将一个结构体传递给另一个包?

PackageA.go

package A 

import "B" 

type TestStruct struct { 
    Atest string 
} 

func Test() { 
    test := TestStruct{"Hello World"} 
    B.Test(test) 
} 

PackageB.go

package B 

import "fmt" 

func Test(test TestStruct) { 
    fmt.Println(test.Atest) 
} 

这与undefined: test时,它遇到包B

失败基本上我有问题将结构从一个包传递到另一个包或者甚至传递充当指向其他结构或函数的变量的变量。

任何指针都会非常有帮助。

+4

'B'将需要进口'A'了解的'TestStruct'类型。但是你有一个循环依赖,你可能还需要合并这两个包(或者至少在一些代码中进行混洗)。 –

回答

5

重组您的代码为:

a.go

package a 

import "b" 

func Test() { 
    test := b.TestStruct{"Hello World"} 
    b.Test(test) 
} 

b.go

package b 

import "fmt" 

type TestStruct struct { 
    Atest string 
} 

func Test(test TestStruct) { 
    fmt.Println(test.Atest) 
} 
相关问题