Как импортировать локальный пакет в Golang

#go #import #package #local

#Вперед #импорт #пакет #Местные новости

Вопрос:

у меня проблема. Я не могу импортировать локальные пакеты в свое приложение.

 
type Post struct {
    URL     string `json:"url,omitempty"`
    Caption string `json:"caption,omitempty"`
    Likes   []User `json:"likes,omitempty"` // Can not import User from package user
}
 
 
type User struct {
    Name       string `json:"name,omitempty"`
    Password   string `json:"password,omitempty"`
    Followers  []User `json:"followers,omitempty"`
    Followings []User `json:"followings,omitempty"`
}
 

Комментарии:

1. Руководство по разработке модуля Go см. в go.dev/doc/code . Раздел в документе описывает, как работать с пакетами в одном модуле.

Ответ №1:

Я создал примерную структуру для вашего сценария следующим образом:

Предполагая, что структура проекта выглядит примерно так:

 project-villa/      //Name of your Project

    model/
    -user.go    //this file will contain your User Structure
    repository/
    -post.go   //this file will hold your Post structure and the rest piece of code
    handler/
    driver/
    main.go
 

Шаг 1: — инициализировать модуль

 go mod init project-villa
 

или

 go mod init github.com/user-name/project-villa
 

Мод сам будет управлять зависимостью модуля. В любом случае, если это не так, вы можете импортировать его явно.
Это будет выглядеть так:

 github.com/random/project-villa/models




 type Post struct {
    URL     string `json:"url,omitempty"`
    Caption string `json:"caption,omitempty"`
    Likes   []models.User `json:"likes,omitempty"` //you can use it like this
}
 

Для справки вы можете перейти по ссылке официального разработчика go. Здесь вы получите Importing packages from your module .