Булевый флаг создаётся через
verbose := flag.Bool("v", false, "Enable verbose mode")
flag.Parse()
if *verbose {
    fmt.Println("Verbose logging enabled")
}Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥2👾1
  ⏳ Время прокачать алгоритмы с 40-процентной скидкой до конца октября
На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.
🔹 В курсе ты научишься:
— искать ошибки с помощью редакционного расстояния;
— работать с балансированными деревьями и графами;
— решать задачи с динамическим программированием;
— и многое другое, что пригодится на собеседованиях.
🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!
🔗 Подробнее о курсе
На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.
🔹 В курсе ты научишься:
— искать ошибки с помощью редакционного расстояния;
— работать с балансированными деревьями и графами;
— решать задачи с динамическим программированием;
— и многое другое, что пригодится на собеседованиях.
🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!
🔗 Подробнее о курсе
🤔1
  M:N scheduling в Go — это
В Go реализована модель M:N с использованием трех основных сущностей:
• G (Goroutine) — легковесная пользовательская горутина с собственным стеком и контекстом исполнения.
• M (Machine) — системный
• P (Processor) — логический
Количество P по умолчанию равно числу логических
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍4👾1
  flag.Parse() разбирает аргументы
Последующие вызовы
Если нужно повторно разобрать аргументы, например, для тестов, придётся
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3👾1
  Ошибка с
Забытый
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👏4
  Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥19👍6❤5🥱2
  💡 Задача с собесеседования
Недавно в одном известном всем банке кандидату была предложена задача:
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.
🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.
🔍 На курсе вас ждет:
— линейная алгебра, анализ, теория вероятности и статистика;
— градиенты, матрицы и экстремумы функций;
— математики и алгоритмы машинного обучения;
— много практики.
📅 Старт: 6 ноября
⏰ Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)
🔗 Узнать больше и записаться
Недавно в одном известном всем банке кандидату была предложена задача:
Есть клиент, который за месяц делает 1000 транзакций.
Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.
🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.
🔍 На курсе вас ждет:
— линейная алгебра, анализ, теория вероятности и статистика;
— градиенты, матрицы и экстремумы функций;
— математики и алгоритмы машинного обучения;
— много практики.
📅 Старт: 6 ноября
⏰ Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)
🔗 Узнать больше и записаться
🥱4
  После вызова flag.Parse() все оставшиеся аргументы (которые не являются флагами) можно получить через
flag.Parse()
fmt.Println("Remaining args:", flag.Args())
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3😁1
  😵💫 Устал от бесконечной подготовки к собесам?
Тогда залетай к нам, есть задачка попроще.
Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.
📱 Перейти в бота
  Тогда залетай к нам, есть задачка попроще.
Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.
📱 Перейти в бота
type Value interface {
    String() string
    Set(string) error
}После этого пользовательский тип можно зарегистрировать через
type MyFlag struct{}
func (m *MyFlag) String() string { return "" }
func (m *MyFlag) Set(value string) error { fmt.Println("Set value:", value); return nil }
var my MyFlag
flag.Var(&my, "myflag", "custom flag")
flag.Parse()Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍4
  🔥 Новый курс «Математика для Data Science»
Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀
🧠 Эксперты-спикеры на курсе:
▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума;
▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк);
▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ.
👉🏻 Не упустите шанс улучшить свои навыки
Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀
🧠 Эксперты-спикеры на курсе:
▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума;
▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк);
▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ.
👉🏻 Не упустите шанс улучшить свои навыки
🥱1
  Чтобы объединить два слайса с помощью append, нужно использовать
Но тут есть важный нюанс — если у первого слайса достаточно
Поэтому, если нужно
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍2
  💥 Математика, которая не «для галочки»
Разработали курс «Математика для Data Science» специально для вас — чтобы закрыть все пробелы в математике и уверенно пройти любое собеседование на позицию Data Scientist.
🧠 За 2 месяца ты разберёшь:
➡️ линейную алгебру — работа с векторами и матрицами, их разложения, собственные значения и обратные матрицы;
➡️ мат. анализ — пределы, производные, экстремумы, применение градиентного спуска;
➡️ теорию вероятностей и статистику — случайные величины, распределения, статистические гипотезы, A/B-тесты;
➡️ математику в ML и аналитике — как использовать всё это в алгоритмах, логистической регрессии, методах ближайших соседей, байесовских подходах.
📚 Формат: 10 вебинаров, 3 практических проекта, тесты и чат с менторами.
🔥 При оплате до 19 октября получите курс по базовой математике в подарок.
🔗 Записаться на курс
Разработали курс «Математика для Data Science» специально для вас — чтобы закрыть все пробелы в математике и уверенно пройти любое собеседование на позицию Data Scientist.
🧠 За 2 месяца ты разберёшь:
➡️ линейную алгебру — работа с векторами и матрицами, их разложения, собственные значения и обратные матрицы;
➡️ мат. анализ — пределы, производные, экстремумы, применение градиентного спуска;
➡️ теорию вероятностей и статистику — случайные величины, распределения, статистические гипотезы, A/B-тесты;
➡️ математику в ML и аналитике — как использовать всё это в алгоритмах, логистической регрессии, методах ближайших соседей, байесовских подходах.
📚 Формат: 10 вебинаров, 3 практических проекта, тесты и чат с менторами.
🔥 При оплате до 19 октября получите курс по базовой математике в подарок.
🔗 Записаться на курс
❤2
  -h или --helpПри вызове программы с флагом
-h пакет flag Please open Telegram to view this post
    VIEW IN TELEGRAM
  👏4
  Самый универсальный способ — использовать встроенный пакет
Метод
func main() {
    var x interface{} = 42
    var y interface{} = "привет"
    var z interface{} = []int{1, 2, 3}
    
    fmt.Println(reflect.TypeOf(x))  // int
    fmt.Println(reflect.TypeOf(y))  // string
    fmt.Println(reflect.TypeOf(z))  // []int
}Когда вы работаете с интерфейсами и хотите проверить конкретный тип, используйте
func processValue(val interface{}) {
    if str, ok := val.(string); ok {
        fmt.Printf("Это строка: %s\n", str)
    } else if num, ok := val.(int); ok {
        fmt.Printf("Это число: %d\n", num)
    } else {
        fmt.Println("Неизвестный тип")
    }
}Когда нужно обработать несколько типов,
func describe(i interface{}) {
    switch v := i.(type) {
    case int:
        fmt.Printf("Целое число: %d\n", v)
    case string:
        fmt.Printf("Строка длиной %d символов\n", len(v))
    case []int:
        fmt.Printf("Срез из %d элементов\n", len(v))
    case bool:
        fmt.Printf("Булево значение: %v\n", v)
    default:
        fmt.Printf("Неизвестный тип: %T\n", v)
    }
}Для быстрой отладки можно использовать
var data interface{} = map[string]int{"ключ": 100}
fmt.Printf("Тип переменной: %T\n", data)  // map[string]intКогда использовать каждый способ
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3
  Time.Sub() — метод вычисляет
start := time.Now()
time.Sleep(2 * time.Second)
end := time.Now()
duration := end.Sub(start) // ≈ 2 секунды
fmt.Println(duration) // 2.001234567s
Time.Add() — метод
now := time.Now()
tomorrow := now.Add(24 * time.Hour)
yesterday := now.Add(-24 * time.Hour)
fmt.Println("Завтра:", tomorrow)
fmt.Println("Вчера:", yesterday)
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍1
  🧠 Курс «Математика для Data Science»
Математика лежит под капотом не только алгоритмов, но и всего, что мы создаём — от систем рекомендаций до маршрутизации такси.
Но главное, математика понятна, если объяснить её на языке разработки.
📘 Курс «Математика для Data Science»:
— от основ до реальных задач из собесов;
— линейная алгебра, статистика, теория вероятностей;
— визуализации, практика и живые уроки;
— поддержка менторов и комьюнити в чате.
⚡ Сегодня последний день, чтобы получить подарок: курс по базовой математике!
🗓️ Старт курса → 6 ноября
👉 Записаться на курс
Математика лежит под капотом не только алгоритмов, но и всего, что мы создаём — от систем рекомендаций до маршрутизации такси.
Но главное, математика понятна, если объяснить её на языке разработки.
📘 Курс «Математика для Data Science»:
— от основ до реальных задач из собесов;
— линейная алгебра, статистика, теория вероятностей;
— визуализации, практика и живые уроки;
— поддержка менторов и комьюнити в чате.
⚡ Сегодня последний день, чтобы получить подарок: курс по базовой математике!
🗓️ Старт курса → 6 ноября
👉 Записаться на курс
🌚2
  Когда вы вызываете
time.After, внутри создаётся таймер. Этот таймер будет жить и заниматьТипичный код с утечкой:
for {
    select {
    case msg := <-messages:
        process(msg)
    case <-time.After(5 * time.Second):
        // проверяем что-то каждые 5 секунд
    }
}На первый взгляд всё хорошо. Но на каждой итерации цикла
Правильное решение
Используйте
timer := time.NewTimer(5 * time.Second)
defer timer.Stop()
for {
select {
case msg := <-messages:
process(msg)
timer.Reset(5 * time.Second)
case <-timer.C:
// проверка по таймауту
timer.Reset(5 * time.Second)
}
}
Теперь таймер
Если таймаут разовый и вы точно знаете, что он сработает —
time.After подходит:select {
case result := <-doWork():
    return result
case <-time.After(10 * time.Second):
    return errors.New("timeout")
}Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍17👾1
  Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥13❤3👍3👾2😢1
  This media is not supported in your browser
    VIEW IN TELEGRAM
  🔥Обсуждаем все, что волнует Go-сообщество: 1 ноября Яндекс проведет митап для разработчиков по Go
Помимо выступлений спикеров — нетворк и обсуждение свежих релизов, инструментов, новых подходов и архитектурных решений.
В докладной части: СТО Яндекс Игр Степан Пестерников расскажет, как они используют KV-хранилища и кеши. Старший разработчик Яндекс Маркета Александр Никитин покажет, как с помощью Debug Tree разобраться, как работает сложная многопоточная кодовая база. Разработчик бэкенда Плюса и Финтеха Игорь Панасюк разберет новый garbage collector в Go 1.25, и расскажет, какое влияние он окажет на ваши сервисы.
Отдельно на круглых столах офлайн-участники смогут обсудить использование AI-инструментов, highload, нетипичное применение Golang и другие актуальные для go-разработки темы.
Для тех, кто не сможет быть очно, трансляция будет доступна онлайн и в записи.
💥 Регистрируемся здесь.
Помимо выступлений спикеров — нетворк и обсуждение свежих релизов, инструментов, новых подходов и архитектурных решений.
В докладной части: СТО Яндекс Игр Степан Пестерников расскажет, как они используют KV-хранилища и кеши. Старший разработчик Яндекс Маркета Александр Никитин покажет, как с помощью Debug Tree разобраться, как работает сложная многопоточная кодовая база. Разработчик бэкенда Плюса и Финтеха Игорь Панасюк разберет новый garbage collector в Go 1.25, и расскажет, какое влияние он окажет на ваши сервисы.
Отдельно на круглых столах офлайн-участники смогут обсудить использование AI-инструментов, highload, нетипичное применение Golang и другие актуальные для go-разработки темы.
Для тех, кто не сможет быть очно, трансляция будет доступна онлайн и в записи.
💥 Регистрируемся здесь.
❤3👍1🤩1