如何将结构传递给另一个包?

时间:2013-08-20 23:15:35

标签: go

这是我正在尝试做的一个非常淡化的版本,但请帮我解决以下问题:

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)
}

当它遇到程序包B时,undefined: test失败

基本上我遇到的问题是将结构从一个包传递到另一个包,或者甚至传递作为指向其他结构或函数的指针的变量。

任何指针都会非常有用。

1 个答案:

答案 0 :(得分:6)

将您的代码重新整理为:

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)
}