Работа с пакетами

Давайте вернемся к истокам и взглянем еще раз на hello_world написанный на go

package main

import "fmt"

func main() {
	fmt.Println("Hello world")
}

Давайте взглянем на самую первую строчку package main что она означает ? —

Пакет в Go - это, по сути, именованная коллекция из одного или нескольких связанных файлов .go. Основная цель пакетов в Go - помочь вам изолировать и повторно использовать код.

Каждый файл .go, который вы пишете, должен начинаться с оператора package {name}, который указывает на имя пакета, частью которого является данный файл. Например, в приведенном выше коде строка package main объявляет, что файл main.go является частью пакета с именем main.

При этом пакет main — особенный: давайте заменим package main на package meow

package meow

import "fmt"

func main() {
	fmt.Println("Hello world")
}

Как видите без package main — никуда

Но это не все: давайте попробуем переименовать метод main()

package main

import "fmt"

func meow() {
	fmt.Println("Hello world")
}

Как я упоминал на третьем занятии метод main() — тоже особенный: он обязательно должен присутствовать в пакете main и является точкой входа в программу

Исполняемые программы (те, которые имеют пакет main) называются командами. Остальные называются просто пакетами.

Принято, чтобы метод main() находилась в файле с именем main.go. Технически это не обязательно, но соблюдение этого правила облегчает поиск точки входа в приложение для тех, кто будет читать ваш код в будущем.

Теперь давайте создадим новый файл hello_printer рамках пакета main

package main

import "fmt"

func printHello() {
	fmt.Println("Hello World")
}