Модули и локальные пакеты
Не пойму, почему я не могу обратиться к функции пакета который лежит в папке internal.
Замечаний с стороны компилятора нет, при вызове получаю ошибку - "package command-line-arguments
cmd\main.go:5:2: use of internal package test/internal not allowed"
Если переименовать папку internal проблема уходит
Структура проекта
test
├─ go.mod
├─ internal
│ └─ handler
│ └─ opkg.go
├─ main.go
main.go
package main
import (
"fmt"
i "test/internal/handler"
)
func main() {
v := i.GetDouble(15)
fmt.Println(v)
}
opkg
package internal
func GetDouble(a int) int {
return a * 2
}
go.mod
module test
go 1.18
Ответы (2 шт):
Автор решения: Данил
→ Ссылка
main.go
package main
import (
"log"
s "test/internal/handler"
)
func main() {
log.Println(s.GetDouble(15))
}
test/internal/handler/opkg.go
package internal
func GetDouble(a int) int {
return a * 2
}
У меня все работает, ошибок никаких нету
