如何从Go中的外部包访问结构

时间:2016-09-26 19:10:22

标签: go struct import

我正在尝试从以下文件中的另一个包导入结构:

// main.go
import "path/to/models/product"    
product = Product{Name: "Shoes"}

// models/product.go
type Product struct{
 Name string
}

但是在main.go文件中,结构Product未定义。如何导入结构?

1 个答案:

答案 0 :(得分:6)

在Go中你导入"完成" ,而不是包中的功能或类型 (有关详细信息,请参阅此相关问题:What's C++'s `using` equivalent in golang

有关import关键字和导入声明的语法和更深入说明,请参阅Spec: Import declarations

导入包后,您可以参考其exported identifiers qualified identifiers,其格式为:packageName.Identifier

所以你的例子看起来像这样:

import "path/to/models/product"
import "fmt"

func main() {
    p := product.Product{Name: "Shoes"}
    // Use product, e.g. print it:
    fmt.Println(p) // This requires `import "fmt"`
}