Имя папки и пакета в Go
Имя в строке пакета и имя папки лучше держать одинаковыми. Так проще найти код и не перепутать путь импорта с именем в коде после подключения.
Формально строка package может не
совпадать с названием каталога. При подключении
путь строят по папке и модулю, а в выражениях
используют имя из строки package, не
имя папки.
Положим код в box/greet.go, но назовем
пакет greet:
package greet
func Hello() string {
return "hello"
}
Подключение идет по папке box, а в
коде пишут greet.Hello:
package main
import (
"fmt"
"example.com/app/box"
)
func main() {
fmt.Println(greet.Hello())
}
Путь импорта "example.com/app/box"
не равен имени greet в выражениях.
Так лучше не делать: имя папки и пакета
обычно совпадают, и читателю не приходится
запоминать два разных слова для одного
места.
Дан файл box/greet.go с package greet.
Напишите строку импорта для main
при модуле "example.com/app".
Скажите, через какое имя в коде вызывают
Hello после подключения box
с package greet: box или greet.
Переименуйте папку в greet, оставьте
package greet и обновите импорт
в main на согласованный путь.