В языке Go, по сути, есть две основных сущности: исполняемые файлы, и пакеты. В этой статье предлагаю рассмотреть вторую на небольшом примере.
Пакет — это библиотека функций и структур. По своему назначению она напоминает стандартные, всем хорошо известные, линкуемые библиотеки. Пакет в Go определяет область видимости. Если название переменных или структур начинается с маленькой буквы, то они локальные (область видимости пакета), если с большой, то экспортируемые. Локальные структуры и функции можно использовать только внутри пакета, глобальные внутри и вне пакета. Данную особенность легко понять на примере работы с пакетом json, входящей в состав стандартных библиотек языка.
Подобный код будет возвращать ошибку.
type Link struct {
name string
url string
title string
class string
}
links := make(map[string]Link)
if err = json.Unmarshal(response, &links); err != nil {
return err
}
Читать полностью »