Создать файл заголовка / декларации с помощью golang - все в одном файле? - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу автоматически сгенерировать некоторые файлы объявлений Golang на основе некоторых данных .json. В идеале я мог бы поместить все данные объявления / заголовка в один файл. Но то, как работает пакет / пространство имен Golang, я сомневаюсь, что смогу это сделать.

Вместо 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 { }

      }

    }

  }

}

мой вопрос - есть ли способ сделать что-то подобное с Голангом? Или мне придется использовать отдельные файлы / папки для создания отдельных пространств имен?

Единственное, что я знаю, как сделать, это поместить их в отдельные файлы:

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

и затем в каждой из этих папок что-то вроде:

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

но, к сожалению, это не дает того, чего я хочу, потому что я не могу напрямую ссылаться на типы Basic.Req или Basic.Res.

1 Ответ

0 голосов
/ 16 ноября 2018

Golang логически упорядочивает код по пакетам.Каждый каталог представляет собой отдельный пакет.Если вы хотите создавать структуры в отдельных пакетах, они должны находиться в разных каталогах.

Возможно, вы захотите упорядочить созданные вами библиотеки по их языковым стилям.В пакете http есть хорошие предложения по организации библиотеки с сетевыми вызовами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...