Пакеты или Packages
Это второй урок нашего путешествия по изучению языка программирования 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 и вам есть чем поделиться, — жду вас в комментариях.