Несколько файлов одного пакета в Go
Файлы одной папки с одним именем пакета видят друг друга без подключения. Компилятор собирает их в один пакет, как будто это один большой файл.
Вынесем приветствие во второй файл того же
main:
package main
func greeting() string {
return "hello"
}
В main.go вызываем функцию из соседнего
файла:
package main
import "fmt"
func main() {
fmt.Println(greeting())
}
Строка package main совпадает в обоих
файлах, поэтому greeting видна в main
без строки подключения. Имя greeting
с маленькой буквы здесь не мешает: оба
файла все равно один пакет.
Так удобно делить длинный main по темам,
не создавая отдельный пакет для каждой
мелочи. Для кода, который нужен снаружи
проекта, позже заведут отдельную папку
и путь модуля.
Даны файлы:
package main
import "fmt"
func main() {
fmt.Println(label())
}
Добавьте util.go с package main
и функцией label, которая возвращает
"go".
Дан следующий код:
package main
func twice(n int) int {
return n * 2
}
Скажите, нужно ли в main.go подключать
a.go, если там тоже package main.
Разнесите вывод "pair" на два файла
с package main: в одном функция
word, в другом main с печатью
результата word.