Как импортировать локальные пакеты при использовании модулей Go - PullRequest
1 голос
/ 19 мая 2019

Я хочу создать большой проект, поэтому мне нужно создать некую структуру папок. Я довольно новичок в Go, но, как я понимаю, способ сделать это - создать пакеты, верно? Я использую модули Go, я пробовал много разных решений, найденных здесь и в Google, но ни одно из них, похоже, не работает для меня.

Все, что я сейчас хочу, это импортировать экспортированную функцию из файла example.go в main.go

Структура папок выглядит следующим образом:

client
example
---example.go
go.mod
go.sum
main.go
  1. Я создал файл модуля с go mod init, см. Первый фрагмент кода ниже
  2. Второй фрагмент кода показывает, как выглядит заголовок main.go
  3. Третий фрагмент - это пакет с функцией, которую я хочу импортировать
    module exampleapp
    go 1.12
    require (
        github.com/gin-gonic/contrib v0.0.0-20190408155029-b5986969cb50
        github.com/gin-gonic/gin v1.4.0
    )

package main
import (
    "net/http"
    "exampleapp/example"
)
    package example
    import (
        "net/http"
        "github.com/gin-gonic/gin"
    )

    func GetAllEmployees(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "pong",
        })
    }

По большей части, когда я пытаюсь добавить пакет в main.go, VSCode автоматически удаляет строку и в основной функции говорит, что GetAllEmployees не определен. Мне удалось перехватить пакет ошибок до того, как пакет будет удален, он говорит -

"imported and not used: "exampleapp/example"
Я ошибаюсь, чтобы использовать "exampleapp / пример" имя модуля exampleapp здесь? Я попытался без exampleapp и "./example/example", но затем я получаю сообщение об ошибке, в котором говорится, что он не может найти модуль для пути.

Помощь будет высоко ценится, так как я застрял в ней довольно долго и не могу понять, чего мне здесь не хватает.

1 Ответ

3 голосов
/ 19 мая 2019

Должно быть так (main.go):

package main
import (
    "exampleapp/example"
)

func main() {
    example.GetAllEmployees(...)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...