如何在go中从另一个包访问结构变量?

时间:2019-04-28 11:54:25

标签: go

假设我们有两个不同的包,比如说A和B。我在包A中有一个结构,如下所示:

type struct1 struct {
   X int
   Y int
}

在B包中,我想访问struct1(即A包)中的变量。我该怎么做?

1 个答案:

答案 0 :(得分:1)

在Go中,如果类型以大写字母开头,则可以将其导出。例如,Struct1可以从包外部导出并访问,但是struct1不能导出,因为尚未导出。未导出的名称仅在该软件包内部可用。

您可以将包A导入到包B中,并以A.Struct1的形式访问导出的类型:

package B

import (
    "A"
    "fmt"
)

func CreateAndPrintStruct() {
    struct1 := A.Struct1{5, 4}
    fmt.Printf("%+v", struct1)
}