我有一个声明的结构,main.go如下所示:type Organization struct { ID string `json:"id"` Count int `json:"count"` //node count}我有一个名为的包configuration并具有这样的功能:func foo(org main.Organization) {}问题是我无法访问main.Organization. 有没有办法访问在main.go另一个包中声明的结构?
2 回答
万千封印
TA贡献1891条经验 获得超3个赞
package main
除非在某些极少数情况下,否则无法导入。
但是,在另一个主包中导入一个主包是可行的。总结一下:
1) 支持在外部测试中引入主包
2) 支持在主包中引入主包
3)不支持在非主包中引入主包这对我来说似乎是合理的,但是 AFAIK 没有记录在案。
从语言规范
一个完整的程序是通过将称为主包的单个未导入的包与其导入的所有包可传递地链接起来创建的。主包必须具有包名 main 并声明一个不带参数且不返回任何值的函数 main。
(在两个引号中强调我的)
梦里花落0921
TA贡献1772条经验 获得超5个赞
你不能从go中的其他包中导入主包(某些情况除外,例如测试用例)。
而是创建一个新目录,例如名为,在此文件夹中创建如下所示的mytypes文件:types.go
package mytypes
type Organization struct {
ID string `json:"id"`
Count int `json:"count"` //node count
}
无论您想在何处使用此结构,例如在 main an 中,您都可以将该结构import "mytypes"用作Organizationmytypes.Organization
或者,您将Organization结构移动到您的configuration包中并在您的 main 中使用configuration.Organization。
- 2 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消