В Go
Внутри функции можно использовать оператор :=, если одновременно присутствует
a := 1 // a объявлена
a, b := 2, 3 // a присваивается новое значение, а b объявляется
Можно объявить переменную с одинаковым именем в разных областях видимости:
var a = 1
func test() {
var a = 2 // это другая переменная, локальная для функции
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤4👍2🥱1
atomic.Value используется для безопасного
Для записи используется метод Store, для чтения — Load. Хранящееся значение должно быть
atomic.Value синхронизирует само
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
⚡️ Механизм запущен, часики тикают
Прямо сейчас кто-то уже купил курс со скидкой 40%, открыл первый урок и уже на пути к MacBook Pro 14.
А ты всё ещё читаешь этот пост...
⏰ Дедлайны не ждут:
31 октября — скидка 40% сгорает
15 ноября — розыгрыш MacBook
🎯 Правила участия:
→ купить любой курс до 31 октября
→ отучиться 2 недели
→ написать #розыгрыш куратору
🕊️ Не упусти свой шанс
Прямо сейчас кто-то уже купил курс со скидкой 40%, открыл первый урок и уже на пути к MacBook Pro 14.
А ты всё ещё читаешь этот пост...
⏰ Дедлайны не ждут:
31 октября — скидка 40% сгорает
15 ноября — розыгрыш MacBook
🎯 Правила участия:
→ купить любой курс до 31 октября
→ отучиться 2 недели
→ написать #розыгрыш куратору
🕊️ Не упусти свой шанс
Если контекст, переданный горутине, отменён с помощью функции
cancel(), в горутине <-ctx.Done(). Когда горутина обнаружит, что
Сам по себе вызов
cancel() Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Go как ядро сложной dev-платформы? Да, и это SourceCraft! 🤯
Интересный факт для Go-комьюнити: ядром git-сервера SourceCraft стал переработанный Go-движок go-git. Команда Яндекса перенесла слой хранения в облако (Object Storage + PostgreSQL), добившись масштабируемости. И почти вся остальная бэкенд-обвязка платформы тоже написана на Go!
Получился редкий пример, где Go — не просто один из языков, а основа сложной инфраструктуры. Разработчики платформы говорят, что это даёт масштабирование без потери быстродействия. Можно залить крупный проект и проверить, как он грузится. 🤔
Интересный факт для Go-комьюнити: ядром git-сервера SourceCraft стал переработанный Go-движок go-git. Команда Яндекса перенесла слой хранения в облако (Object Storage + PostgreSQL), добившись масштабируемости. И почти вся остальная бэкенд-обвязка платформы тоже написана на Go!
Получился редкий пример, где Go — не просто один из языков, а основа сложной инфраструктуры. Разработчики платформы говорят, что это даёт масштабирование без потери быстродействия. Можно залить крупный проект и проверить, как он грузится. 🤔
👍3❤1🔥1👾1
Поля-структуры содержат
Поля-интерфейсы описывают набор методов
Типы в полях-структурах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👾1
✨ Halloween Special — последний день магии! 👻
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
Успевай сегодня купить курсы со скидкой 40%!
А также участвуй в розыгрыше MacBook Pro 14 💻
После полуночи останется только тыква 🎃
🔮 Открой портал и выбери курс
🌚1
⚙️ В микросервисах всё рушится не тогда, когда ломается код, а когда ломается конфигурация. Один неверный параметр — и вместо отказоустойчивости получаете каскадный сбой.
На открытом уроке вы узнаете, как централизованное управление настройками помогает системе оставаться живой, даже когда всё вокруг падает.
Разберём etcd, Zookeeper, Consul, а также практику автоматического обновления конфигураций без остановки сервисов.
❗️ Мы покажем, как микросервисы на Go могут адаптироваться к сбоям и изменениям в реальном времени, и какие паттерны делают архитектуру по-настоящему устойчивой.
📆 5 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Микросервисы на Go».
➡️ Регистрируйтесь и разберитесь, как не дать своим сервисам “упасть” из-за одной строки в конфиге: https://clc.to/hFI13w
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На открытом уроке вы узнаете, как централизованное управление настройками помогает системе оставаться живой, даже когда всё вокруг падает.
Разберём etcd, Zookeeper, Consul, а также практику автоматического обновления конфигураций без остановки сервисов.
❗️ Мы покажем, как микросервисы на Go могут адаптироваться к сбоям и изменениям в реальном времени, и какие паттерны делают архитектуру по-настоящему устойчивой.
📆 5 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Микросервисы на Go».
➡️ Регистрируйтесь и разберитесь, как не дать своим сервисам “упасть” из-за одной строки в конфиге: https://clc.to/hFI13w
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👾1
Можно использовать тип данных
При конкурентных обращениях использовать
Если нужно сохранять пользователей в базе данных — использовать уникальные
При необходимости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🌚2
В Go аргументы функции, вызванной с помощью
defer, вычисляются Сам вызов функции с
defer будет выполнен Пример:
package main
import "fmt"
func main() {
x := 10
defer fmt.Println("До:", x) // x вычисляется сейчас, но вывод откладывается
x = 20
fmt.Println("После:", x)
}
Выведется 20 и 10, потому что значение x для
defer зафиксировалось при объявлении defer, а не к моменту выполнения отложенной функции.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Суть метода в свойствах XOR:
• Любое число XOR с самим собой дает
a⊕a = 0
a⊕a = 0.• Любое число XOR с нулем дает
a⊕0 = a
a⊕0 = a.• Операция XOR коммутативна и ассоциативна, то есть порядок операндов не важен.
Поэтому если последовательно применить XOR ко
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Небуферизованный канал — строгий. Отправка и прием завершаются
Буферизованный канал хранит элементы в
При небуферизованном обмене с ожидающим получателем значение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2
Канал с размером буфера 1 — это своего рода «промежуточный» вариант между небуферизованным и традиционно буферизованным каналом. Он позволяет одному элементу находиться в канале
Если буфер пуст, то отправитель записывает значение в буфер и
Если буфер заполнен этим одним элементом, дальнейшая отправка
Получатель, если буфер пуст, будет
Это часто используется для случаев, когда нужен небольшой буфер для
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1