Это второй урок нашего путешествия по изучению языка программирования Go (Golang) и сегодня мы поговорим про главную особенность языка — пакеты.
Объявление пакета
Первая строка исходного файла Go — это «объявление пакета», определяемое ключевым словом package
.
Это служит нескольким целям:
- Обеспечивает структуру для группировки связанных исходных файлов.
- Оно обеспечивает механизм повторного использования кода.
- Оно отличает исполняемые пакеты от пакетов утилит (т. е. библиотек).
Пример:
package main
go build
создаст исполняемый бинарный (двоичный) файл для исходных файлов с package main
.
Импортирование пакета
Ключевое слово import
позволяет подключать и использовать код из других пакетов.
Пример:
import "fmt"
Переменная ссылающаяся на пакет создается из имени импортируемого пакета — в данном случае fmt
.
Импорт нескольких пакетов
Обычно в исходный файл импортируется несколько пакетов. Для этого принято использовать один оператор импорта со списком пакетов в круглых скобках, как показано ниже:
import (
"package1"
"package2"
)
Псевдоним пакета
Можно определить «псевдоним» как сокращенное имя вместо стандартной переменной обращения к пакету. Для этого нужно указать псевдоним перед именем пакета следующим образом:
import (
p1 "package1"
"package2"
)
Это позволяет вызывать функции из package1
следующим образом:
p1.SampleFunc()
Пример целиком
Это пример «Hello World» на языке Go, который демонстрирует описанные выше концепции.
package main
import (
"fmt"
t "time"
)
func main() {
fmt.Println("Hello, World!")
fmt.Println("The time is now", t.Now())
}
Основные моменты:
- Строка 1: Объявление пакета с именем пакета
main
. Это сделает программу исполняемой. - Строка 3: Оператор
import
импортирует список пакетов. - Строка 4: Импортирует пакет
fmt
с его стандартным именем (fmt
). - Строка 5: Импортирует пакет
time
с псевдонимомt
. - Строка 9: Использует функцию
Println
из пакетаfmt
для вывода сообщения «Hello, World!». - Строка 10: Использует функцию
Println
из пакетаfmt
для вывода сообщения «The time is now », за которым следует текущее время, возвращаемое функциейNow
из пакетаtime
(псевдонимt
).
Ниже пример вывода приведенной выше программы:
$ go run main.go
Hello, World!
The time is now 2020-08-16 18:07:24.180778888 +0000 UTC m=+0.000097040
Краткие выводы
- Ключевое слово
package
используется для обязательного объявления пакета. - Ключевое слово
import
используется для добавления в программу других пакетов. main
— это специальное имя пакета для исполняемых программ.
Если вы знаете Go и вам есть чем поделиться, — жду вас в комментариях.