uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Библиотека задач по Go | тесты, код, задания

Библиотека задач по Go | тесты, код, задания

Kanalga Telegram’da o‘tish

Задачи и тесты по Go для тренировки и обучения. Учиться у нас: clc.to/4o0_XA По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

Ko'proq ko'rsatish
6 687
Obunachilar
-824 soatlar
-257 kun
-6230 kun
Postlar arxiv
Можно ли увеличить поле структуры прямо внутри map? Go 1.22+. Скомпилируется ли программа и что выведет?
package main

import "fmt"

type User struct{ Score int }

func main() {
    users := map[string]User{
        "ann": {Score: 1},
    }

    users["ann"].Score++

    fmt.Println(users["ann"].Score)
}
👾 — 1 👍 — Ошибка компиляции 🥰 — 2 ⚡️ — Паника во время выполнения Ответ: 👍 — Ошибка компиляции. Значение структуры, полученное через индексирование map, не предоставляет адресуемое поле для такого изменения. Можно получить копию: user := users["ann"], изменить user.Score и записать структуру обратно: users["ann"] = user. При этом users["ann"]++ для map[string]int — другая операция, она допустима. Правило в спецификации Go Библиотека задач по Go

📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок. Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек

Изменит ли range исходный срез структур? Go 1.22+. Что выведет программа?
package main

import "fmt"

type User struct{ Score int }

func main() {
    users := []User{{Score: 1}, {Score: 2}}

    for _, user := range users {
        user.Score += 10
    }

    fmt.Println(users[0].Score, users[1].Score)
}
👾 — 11 12 👍 — 11 2 🥰 — 1 2 ⚡️ — Ошибка компиляции Ответ: 🥰 — 1 2. В user попадает копия очередной структуры. Меняется поле этой копии, а элементы среза остаются прежними. Чтобы изменить исходные значения, можно перебирать индексы и выполнять users[i].Score += 10. Правило новых переменных цикла в Go 1.22 не превращает копию структуры в ссылку. Правило в спецификации Go Библиотека задач по Go

Когда append изменит общий массив, а когда создаст новый? Go 1.22+. Что выведет программа?
package main

import "fmt"

func main() {
    a := [4]int{1, 2, 3, 4}

    free := a[:2]
    limited := a[:2:2]

    x := append(free, 9)
    y := append(limited, 8)

    fmt.Println(a[2], x[2], y[2])
}
👾 — 9 9 8 👍 — 8 8 8 🥰 — 3 9 8 ⚡️ — Ошибка компиляции Ответ: 👾 — 9 9 8. У free длина 2 и ёмкость 4: append использует исходный массив и записывает 9 в a[2]. У limited длина и ёмкость равны 2. Для добавления элемента нужен новый массив, поэтому y[2] равен 8, а a[2] остаётся 9. Само выражение a[:2:2] копию массива не создаёт. Правило в спецификации Go Библиотека задач по Go

Почему два defer видят разные значения одной переменной? Go 1.22+. Что выведет программа?
package main

import "fmt"

func main() {
    n := 1

    defer fmt.Println("arg", n)
    defer func() {
        fmt.Println("closure", n)
    }()

    n = 2
}
👾 — arg 1, затем closure 2 👍 — closure 1, затем arg 1 🥰 — arg 2, затем closure 2 ⚡️ — closure 2, затем arg 1 Ответ: ⚡️ — closure 2, затем arg 1. Аргумент n для fmt.Println вычисляется при выполнении первого defer и сохраняется как 1. Замыкание читает переменную позднее и видит 2. Отложенные вызовы выполняются в обратном порядке регистрации: сначала замыкание, затем fmt.Println с сохранённым аргументом. Правило в спецификации Go Библиотека задач по Go

😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один. Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд

Какое значение запомнит метод, сохранённый в переменную? Go 1.22+. Что выведет программа?
package main

import "fmt"

type Counter struct{ N int }

func (c Counter) Value() int {
    return c.N
}

func main() {
    c := Counter{N: 1}
    saved := c.Value
    c.N = 2

    fmt.Println(saved(), c.Value())
}
👾 — 2 2 👍 — 1 2 🥰 — 1 1 ⚡️ — Ошибка компиляции Ответ: 👍 — 1 2. При создании saved метод с получателем по значению сохраняет копию c, где N равен 1. Изменение исходной структуры не меняет эту копию. Прямой вызов c.Value() использует уже обновлённое значение N = 2. Правило в спецификации Go Библиотека задач по Go

Go 1.23 и новее. Потребитель range по функции завершил цикл через break. yield вернул false. Что обязан сделать итератор?
Anonymous voting

👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране? Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить. 🕰️ Опрос займёт около 3 минут. В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео. 🔗 Поделиться опытом 🐸 Библиотека программиста

🔴AI кодинг интервью с разработчиком из международного FinTech в четверг в 19:00 ДА! Вайбкодинг реально начали проверять на и
🔴AI кодинг интервью с разработчиком из международного FinTech в четверг в 19:00 ДА! Вайбкодинг реально начали проверять на интервью, поэтому мы нашли собеседующего, который проводит AI-секцию в международном финтехе, чтобы вы увидели что на ней спрашивают и как к ней подготовиться. Как это будет: 📂 Александр Дмитриев, разработчик из известного международного финтеха, ex-VK, ex-Ozon проведет вайбкодинг секцию разработчику-добровольцу; 📂 Александр будет задавать реальные вопросы с секций, которые проводил сам и комментировать ответы; 📂 В конце можно будет задать любой вопрос Александру. Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят сменить работу, повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot Реклама. О рекламодателе.

Сколько элементов может быть в бакете у мапы?
Anonymous voting

😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода. 🔘 Поговорим о том: — когда дорогая модель действительно нужна, а когда хватит дешёвой; — сколько стоит один прогон и куда уходят токены; — какие задачи можно отдавать субагентам; — как настроить маршрутизацию моделей; — что проверять в AI-коде перед merge. ✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после. ⬇️ 18 сентября, 19:00 МСК ⬇️ 1,5 часа · бесплатно ⬇️ Арсений Харланов и Олег Лайок 💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре. 🔗 Зарегистрироваться на вебинар⁠

Горутины и каналы: основы параллелизма в Go. Бесплатный урок курса «Go-разработчик. Базовый уровень» Конкурентность — одна из
Горутины и каналы: основы параллелизма в Go. Бесплатный урок курса «Go-разработчик. Базовый уровень» Конкурентность — одна из главных особенностей Go, но именно здесь начинающие разработчики чаще всего сталкиваются с трудноуловимыми ошибками. Неправильная работа с горутинами, каналами или синхронизацией может привести к состояниям гонки, взаимным блокировкам и утечкам ресурсов, которые сложно найти и исправить. На открытом уроке 18 августа в 20:00 разберём, как устроен параллелизм в Go и как безопасно использовать горутины в своих проектах. Поговорим о различиях между горутинами и системными потоками, научимся запускать параллельные задачи, организовывать обмен данными через каналы и применять базовые механизмы синхронизации. Урок будет полезен разработчикам, которые хотят уверенно использовать конкурентность Go в реальных приложениях. 👉 Записаться: https://otus.pw/D28A8/?erid=2W5zFGxyEad Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

❓ Что делает ключевое слово implements в Go
Anonymous voting

👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется зада
👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science. 🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃‍♀️ Proglib Academy

Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇

❓ Что вернёт append при добавлении в nil-слайс
Anonymous voting

❓ Сравнимы ли две структуры через ==, если все их поля сравнимы
Anonymous voting

🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️ На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка. ⚡️ Предзапись на осенний поток уже открыта 🏃‍♀️ Proglib Academy