doushan6692 2018-09-20 05:51
浏览 91
已采纳

使用main.go在其他程序包中声明的结构

I have a structure declared in main.go as shown below:

type Organization struct {
    ID    string `json:"id"`
    Count int    `json:"count"` //node count
}

I have a package named configuration and have a function like this:

func foo(org main.Organization) {

}

The issue is I am not able to access main.Organization. Is there any way to access struct declared in main.go in another package?

  • 写回答

2条回答 默认 最新

  • doukan4039 2018-09-20 06:06
    关注

    It's not possible to import package main except in certain rare circumstances.

    I found this explanation on a mailing list dated back last year.

    However importing a main package in another main package works. To summarize:

    1) importing a main package in a external test is supported
    2) importing a main package in a main package is supported
    3) importing a main package in a non main package is not supported

    This seems reasonable to me, however AFAIK it is not documented.

    From the language spec

    A complete program is created by linking a single, unimported package called the main package with all the packages it imports, transitively. The main package must have package name main and declare a function main that takes no arguments and returns no value.

    (emphasis mine in both quotes)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理