Kuest AI

Изучайте что угодно — бесплатно

Начать бесплатно

Изучайте Go в 10 раз быстрее с ИИ

Срезы, ошибки, интерфейсы и горутины — простыми словами. Вставьте свой код или ошибку, и Kuest поможет понять, чего ожидает Go.

817,000+учеников уже занимаются с Kuest

тем
10
Создан
Google, открыт в 2009 году
Тип
Компилируемый, со статической типизацией
Используется для
Веб-серверов, облачных инструментов, CLI

Посмотрите, как объясняет Kuest

Сначала он спрашивает, а потом объясняет — так вы думаете сами и лучше запоминаете.

Вы: Почему func (c Counter) Inc() { c.n++ } не изменяет мой счётчик?
Kuest: Посмотрите на получатель: (c Counter). Когда вы вызываете counter.Inc(), метод получает ваш счётчик или его копию?
Вы: Раз это не указатель, думаю, он получает копию.
Kuest: Верно, получатель-значение — это копия. Что тогда изменяет c.n++?
Вы: Только n в копии, которая отбрасывается после возврата из Inc.
Kuest: Именно. Как изменить метод, чтобы он обновлял исходное значение?
Вы: Использовать получатель-указатель: func (c *Counter) Inc() { c.n++ }. Тогда изменится настоящий счётчик.

Получатели-значения получают копию; если методу нужно изменить структуру, используйте получатель-указатель.

Ученики, которые всерьёз занимаются с Kuest

учеников
817,000+
стран
100+
  • С C до A по химии

    “Я перестал списывать ответы и начал по-настоящему понимать. За один семестр моя оценка по химии выросла с C до A.”

    11-й класс, Техас
  • 3 часа → 40 минут

    “Мои конспекты за секунды превращаются в тест. То, на что раньше уходил весь вечер, теперь занимает столько же, сколько одна серия.”

    10-й класс, Калифорния
  • Наконец готов к SAT

    “План точно говорил, что делать каждый день. Впервые я пришёл на экзамен спокойным.”

    12-й класс, Нью-Йорк
  • Не даёт мне пропустить ни шаг

    “Сначала раздражало, но в день теста это спасло. Я смог решить каждую задачу без него.”

    9-классник, Огайо
  • Лучше, чем мой репетитор

    “Он доступен и в полночь, терпелив и стоит меньше, чем одно занятие с моим прежним репетитором.”

    Студент 1-го курса, Флорида
  • Моя серия — уже 94 дня

    “Квесты занимают десять минут. Я делаю их в автобусе. И каким-то образом теперь уже я объясняю друзьям биологию.”

    11-классник, Джорджия
  • Испанский наконец стал понятен

    “Разговоры вслух с тьютором помогли исправить произношение быстрее, чем целый год занятий.”

    10-классник, Аризона
  • Нашёл пробелы за один вечер

    “Проверка пробелов показала, что я вообще не понимал моли. Разобрался за 15 минут.”

    11-классник, Джорджия
  • Родитель на связи: больше никаких срывов в 9 вечера

    “Мой сын получает настоящую помощь, а мне не нужно делать вид, что я помню матанализ. И я каждую неделю вижу его прогресс.”

    Родитель, Вашингтон

Методика

Как изучать Go с Kuest

Go — небольшой язык, поэтому большую его часть можно освоить быстро, а настоящее мастерство — писать в стиле Go. Чаще пишите небольшие программы, явно обрабатывайте каждую ошибку и разбирайте срезы и горутины вручную, пока их поведение не перестанет вас удивлять.

  1. Изучите основыЧат с наставником

    Спрашивайте о срезах, структурах или интерфейсах и отвечайте на проверочные вопросы Kuest, прежде чем двигаться дальше.

  2. Приносите свои ошибкиСфотографировать

    Вставьте код и ошибку компилятора или panic либо сделайте снимок экрана — Kuest поможет их прочитать.

  3. Разберитесь со срезами и горутинамиУчебная доска

    Используйте учебную доску, чтобы представить базовый массив среза и передачу значений между горутинами по каналам.

  4. Предсказывайте поведениеКвизы

    Отвечайте на вопросы о том, как append меняет len и cap или какая горутина выведет результат первой.

  5. Повторяйте идиомыКарточки

    Повторяйте идиомы Go, такие как if err != nil, defer и паттерн comma-ok, с интервальными карточками.

  6. Укрепляйте слабые местаПоиск пробелов

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

Что вы изучите

Нажмите на тему, чтобы начать изучать её сейчас.

  1. 01Пакеты, main и go runСтруктурируйте программу с package main, импортами и func main
  2. 02Переменные и типыОбъявляйте значения через var и :=, изучите нулевые значения и основные типы
  3. 03Управление потокомИспользуйте if, switch и единственный цикл for во всех его формах
  4. 04Функции и несколько возвращаемых значенийВозвращайте несколько значений, включая значение и ошибку
  5. 05Массивы, срезы и картыРаботайте со срезами через append, len и cap, а данные «ключ — значение» храните в картах
  6. 06Структуры и методыОбъединяйте данные в структурах и добавляйте методы с получателями-значениями или указателями
  7. 07ИнтерфейсыОпределяйте поведение с помощью интерфейсов, которым типы неявно соответствуют
  8. 08Обработка ошибокПроверяйте err != nil, оборачивайте ошибки и понятно возвращайте их
  9. 09Горутины и каналыВыполняйте задачи параллельно и координируйте их через каналы и sync.WaitGroup
  10. 10Модули и тестированиеУправляйте зависимостями с go mod и пишите тесты с пакетом testing

Попробуйте спросить

Нажмите на вопрос — и Kuest начнёт объяснять его шаг за шагом.

Поможет подготовиться к

  • Курсы по бэкенду и системному программированию
  • Работа над проектами и стажировки

Месяц с Kuest стоит дешевле часа с репетитором

То же терпение, в любое время, по любому предмету. Или оставайтесь на бесплатном плане навсегда.

Репетитор

$40–80за один час

  • Запись за несколько дней
  • Один предмет за занятие
  • Занятие заканчивается через час

Kuest Plus

$10в месяц при оплате за год

  • Все предметы и экзамены на этом сайте
  • В любое время и столько, сколько нужно
  • Квизы, карточки, подкасты и пробные экзамены

Ответы на вопросы

Ваша следующая учебная сессия начинается здесь

Бесплатный план навсегда. Карта не нужна.

Начать бесплатно