Проблема при импорте пакета go - PullRequest
0 голосов
/ 27 февраля 2020

Это моя структура кода:

addition
|_ summing
   |_ sum_prg.go
|_ addition.go
|_ go.mod

Содержимое go .mod

module addition

go 1.14

Содержимое sum_prg. go

package summing

func sumIt(ii int) int {
    return ii + 10
}

Содержание дополнения. go

package main

import (
    "fmt"
    "summing"
)

func main() {
    fmt.Println("hi")
    fmt.Println(summing.sumIt(1))
}

Вот шаги, которые я выполнил:

  1. Внутри папки добавления, go Мод инициализации добавления

  2. Внутри папки суммирования, go build

  3. Назад дополнительно, go Установка дополнения

In шаг 3 я получаю сообщение об ошибке "сложение. go: 5: 2: суммирование пакета не в GOROOT (c: \ go \ src \ summing)"

Это мой первая go попытка программирования.

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

Всегда ли мне нужно иметь Имена модулей вида somethng.com/else?

1 Ответ

2 голосов
/ 27 февраля 2020

Вы можете увидеть в FAQ по модулю

Работают ли модули с относительным импортом, таким как импорт "./subdir"?

Нет. См. # 26645 , который включает:

В модулях, наконец, есть имя для подкаталога.
Если родительский каталог говорит "module m", тогда подкаталог импортируется как "m/subdir" , больше не "./subdir".

Так что, как прокомментировано, используйте "addition/summing" (с имя экспортируемого метода ) для импорта из main.

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