Экспорт импорт с Голангом - PullRequest
0 голосов
/ 23 октября 2018

Не уверен, что это невозможно с Голангом.С Node.js я бы сделал это так:

import * as person from './person';
export {person};

с Golang У меня есть models.go:

package models

import (
    "huru/models/person"
)

можно ли экспортировать человека из этого файла models.go, в пространстве имен человека, как с TypeScript / node.js?

Ответы [ 3 ]

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

Да, мы можем экспортировать структуру из файла в другой файл (или пакет), как и другие языки.

person.go

package models

// struct name should starts with Capital letter to export
type Person struct {
    Name string
    age int
}

Если импортируемый файлнаходится в той же упаковке (модели), то нет необходимости импортировать.Сразу же вы можете использовать это так:

details.go

package models

var perObj Person

func abc() {
    perObj.Name = "xyz"
}

Если импортируемый файл находится в каком-либо другом пакете, то импортируйте пакет моделей.

businesslogic.go

package logic

import (
    "../../models"
)

var perObj Person

func abc() {
    perObj.Name = "xyz"
}
0 голосов
/ 11 мая 2019

@ MrCholo, здесь есть небольшая разница в концепции голанга.Структуры golang, доступные в области имен.

Как в примере

package models

// struct name should starts with Capital letter to export
type Person struct {
    Name string
    age int
}

Структура Person будет доступна во всех файлах, входящих в одну и ту же область имен (например, modles).Вам не нужно импортировать это.

Но если вы хотите получить доступ за пределами пространства имен models, вам придется импортировать пакет models и получить доступ к объекту Person, используя это.

отл.

package anotherpackage

import (
    "<path to models>/models"
)

var perObj models.Person  // here is how you can access the Person struct

Дайте мне знать, если вам все еще неясно.

0 голосов
/ 23 октября 2018

[Можно ли экспортировать человека из этого файла models.go, в пространство имен человека, как, например, с TypeScript / node.js?

Нет.

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