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

标签 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 是未定义的。如何导入结构?

最佳答案

在 Go 中,您导入“完整的”,而不是包中的函数或类型。
(有关更多详细信息,请参阅此相关问题:What's C++'s `using` equivalent in golang)

参见 Spec: Import declarations import 关键字和导入声明的语法和更深入的解释。

一旦你导入了一个包,你可以引用它的exported identifiersqualified 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"`
}

关于go - 如何从 Go 中的外部包访问结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710558/

相关文章:

pointers - Setter 方法不设置结构属性 Golang

c# - 将具有另一个结构数组的结构从 C# 传递到 C (P/Invoke)

excel - 从 excel 导入时在 SAS 中保留换行符(换行符)

java - clojure/lein : How do I include a java file in my project?

unit-testing - 如何在 go 中实现 CLI 命令的单元测试

Golang 类型断言/转换为中间结构

C++:指向结构中成员函数的指针

java - 一个 import 语句可以替代 android 中的所有内部类导入吗?

go - 如何编写干净的集成测试

CS50 Pset3 错误 : expected identifier or '('