Язык Go — кратко. Часть 8. Структуры и интерфейсы

В языке Go очень своеобразная модель ООП. Её называют «утиной типизацией». Здесь нет наследования. Зато есть встраивание, которое частично заменяет наследование. Здесь нет перегрузки и переопределения методов. Всё упрощено до предела, чтобы уменьшить возможность построить сложно поддерживаемую систему, изменения в базовых классах которой вполне могут привести к нарушениям и неожиданному поведению в работе программы. Что мы

Язык Go — кратко. Часть 7. «Исключения»

В языке Go нет исключений в том виде, к которому мы привыкли в С/С++, Java, Python и т.п. языках. Здесь вообще не принято доводить ситуацию до настолько критической, когда происходит экстренное «выбрасывание» куда-то далеко наверх по дереву вызовов. Путь Go — проверка входящих данных и различных условий. Если можем работать — работаем. Если не можем

Язык Go — кратко. Часть 6. Каналы

Каналы крайне полезная штука и используются для передачи данных между рутинами, а также для синхронизации. Альтернативный способ — локи. Но каналы — идейно правильный. 😉 Каналы могут быть синхронными и асинхронными, двунаправленными и однонаправленными. Синхронный канал приводит к остановке кода при чтении, пока в канал не отправят данные, и при записи, пока из канала не

Язык Go — хинты. 02 — загрузка конфига

Обычная задача — есть конфиг нашей программы в каком-нибудь файле и нам надо его загрузить для последующего использования. Конфиги сейчас можно хранить в чём-нибудь вроде YAML или хотя бы JSON или XML. Допустим, наш в ямле.

В отличие от JSON и XML, для YAML официального пакета пока нет. Поэтому гуглим и находим нужное.