2013-08-20 106 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) 
} 
相關問題