Повторное использование кода в go
Не совсем понимаю логику устройства кода в Go. Например у меня есть проект
GoTest
|---go.mod
|---test.go
|---GoTest.go
|---Part1
|---go.mod
|---Part1.go
Содержимое Part1.go
package Part1
improt "example.com/GoTest/Part1"
func GoTestPart1() string{
return "GoTestPart1"
}
и файла Part1/go.mod
module example.com/GoTest/Part1
go 1.17
Теперь я хочу вызвать это код из test.go
package main
import "fmt"
import "example.com/GoTest/Part1"
func main(){
fmt.Print(GoTest())
fmt.Print(GoTestPart1())
}
При сборке получаю следующее:
e:\projects\go\src\GoTest>go build
test.go:4:8: no required module provides package example.com/GoTest/Part1; to add it:
go get example.com/GoTest/Part1
Что нужно сделать чтобы этот код заработал? Правильно я понимаю что папка GoTestPart1 это уже как-бы другой модуль? А если я хочу просто логически выделить содержимое этой папки как самостоятельную часть, но которая при этом не может существовать отдельно (Как если бы мы писали на С++, мы же не все файлы одного проекта пихаем в одну директорию).