使用golang生成标头/声明文件-全部集中在一个文件中吗?

时间:2018-11-15 23:47:54

标签: typescript go

我正在基于一些.json数据自动生成一些Golang声明文件。理想情况下,我可以将所有声明/标题数据放入一个文件中。但是我怀疑Golang打包/命名间隔的工作方式。

我可以使用TypeScript代替Golang,使用TypeScript,将许多TS类型/声明放在一个文件中,如下所示:

export namespace Entities {
  export namespace Foo {

    export namespace GET {
      export namespace Basic {

        export interface Req { }
        export interface Res { }

      }

    }

    export namespace PUT {
      export namespace Basic {

        export interface Req { }
        export interface Res { }

      }

    }

  }

}

我的问题是-有没有办法用golang做类似的事情?还是我必须使用单独的文件/文件夹来实现单独的命名空间?

我唯一知道的方法是将它们放在单独的文件中:

entities/
    foo/
      get/
      put/
      post/
      delete/

,然后在每个文件夹中,类似:

package get
type Basic struct {
     Req struct {}
     Res struct {}
}

但是不幸的是,这不能实现我想要的功能,因为我无法直接引用Basic.Req或Basic.Res类型。

1 个答案:

答案 0 :(得分:1)

Golang在逻辑上按包组织代码。每个目录是一个不同的包。如果要在不同的程序包中生成结构,则它们必须位于不同的目录中。

您可能想按语言样式来组织生成的库。 http软件包对如何通过网络调用组织图书馆提出了很好的建议。