Skip to content

Введение в стандартную библиотеку Go

На момент написания этой статьи дистрибутив Go уже достиг версии 1.21, а с момента создания этого сайта прошёл уже более года.

Стандартная библиотека Go очень богата (за исключением структур данных) и обладает мощными возможностями. API очень дружелюбны для разработчиков, и умение использовать стандартную библиотеку окажет значительную помощь в повседневной разработке. Например, вы можете разработать полноценный веб-проект без каких-либо внешних зависимостей, используя только три библиотеки: net/http, html/template и database/sql.

Содержимое стандартной библиотеки долгое время не обновлялось, потому что её действительно много. Поэтому ниже будет кратко описано назначение некоторых часто используемых стандартных библиотек, чтобы вы могли выбрать интересующие вас для изучения. Документация каждого пакета стандартной библиотеки подробно описывает его назначение.

  • fmt — пакет для обработки форматированного ввода-вывода
  • html — пакет для работы с HTML-шаблонами
  • net — предоставляет набор пакетов для сетевых операций, очень мощный
  • flag — пакет для разбора аргументов командной строки
  • reflect — пакет для работы с рефлексией
  • log — встроенный пакет для ведения журналов
  • sort — пакет для операций сортировки
  • regex — пакет для работы с регулярными выражениями
  • image — пакет для работы с изображениями
  • time — пакет для работы со временем
  • unicode — пакет для работы с набором символов unicode
  • unsafe — предоставляет операции с указателями без ограничений типов
  • syscall — пакет системных вызовов, предоставляемых операционной системой
  • testing — пакет для тестирования, используется при написании тестов
  • sync — пакет для работы с конкурентностью
  • context — пакет контекста
  • strconv — пакет для преобразования строк
  • strings — пакет для работы со строками
  • bytes — пакет для работы с байтовыми срезами
  • maps — пакет для работы с map
  • slices — пакет для работы со срезами
  • io — определяет набор базовых IO-интерфейсов, таких как Closer, Writer и т.д., а также некоторые базовые функции IO-операций
  • io/fs — определяет набор интерфейсов файловой системы, является абстракцией файловой системы
  • os — пакет для взаимодействия с операционной системой, предоставляет набор конкретных функций, можно просто понять как конкретную реализацию двух вышеупомянутых
  • os/signal — пакет сигналов операционной системы, используется для прослушивания сигналов ОС, в основном для реализации корректного завершения работы программы
  • os/exec — пакет команд операционной системы, используется для выполнения команд ОС
  • os/user — пакет пользователя операционной системы, используется для получения информации о пользователе ОС
  • bufio — пакет буферизированного IO-чтения/записи
  • path — пакет для обработки путей, разделённых слэшами, например URL
  • path/filepath — пакет для работы с путями файлов
  • math — пакет математических операций
  • math/bits — пакет для битовых операций
  • math/cmplx — пакет для работы с комплексными числами, также предоставляет набор функций для тригонометрических функций
  • math/rand — пакет псевдослучайных чисел
  • math/big — пакет для высокоточных вычислений с большими числами
  • container/heap — реализация минимальной кучи
  • container/list — реализация двусвязного списка
  • container/ring — реализация кольца
  • archive/zip — пакет для zip-архивации
  • archive/tar — пакет для tar-архивации
  • compress — пакет реализации алгоритмов сжатия, например gzip, flate
  • database/sql — пакет для взаимодействия с базами данных
  • encoding — пакет для работы с кодировками, имеет множество подпакетов, таких как json, xml и т.д., а также base64
  • crypto — пакет для работы с шифрованием, имеет множество подпакетов, таких как sha1, rsa и т.д.
  • go/ast — пакет для отображения абстрактного синтаксического дерева исходного кода Go
  • go/parser — пакет для разбора исходного кода Go в абстрактное синтаксическое дерево
  • go/importer — предоставляет доступ к импортёру
  • go/format — пакет форматирования кода Go
  • arena — предоставляет возможность ручного выделения и освобождения памяти, находится на экспериментальной стадии
  • runtime — пакет операций времени выполнения, многие операции в Go реализованы с помощью этого пакета

Golang by www.golangdev.cn edit