Когда я решил начать писать эту серию, я знал, что в какой-то момент устану, но именно в этом и заключается цель, протолкнуться и просто сделать что-то неудобное, хотя и удовлетворяющее и полезное для меня и, надеюсь, для других. Внутри Evolve Credit мы повторяем вдохновляющую мантру Делай неудобную работу. Это помогло, но черт возьми! Это всего лишь моя вторая статья, как, черт возьми, я уже устал? Посмотрим.

Если нет, прочтите первую статью из этой серии.

  1. Оживление моего Голанга (Введение)

Прогресс на данный момент

Я начал проходить этот курс в понедельник, 28 декабря 2020 года. Сегодня четверг, 21 декабря 2020 года, и я почти на полпути. Это хорошо, но не исключительно. Я смог пройти курс так быстро, прежде всего потому, что уже хорошо разбирался в Golang, и мне было легко понять концепции. До разделов, которые я прошел сегодня утром, мне все еще было скучно не потому, что сам курс скучен, Стивен Грайдер на самом деле очень увлекательный, я просто жду, чтобы перейти к частям, которые я не слишком хорошо знаю [ например, интерфейсы — самое интересное :( ), плюс я пообещал себе не пропускать ни одной части курса.

Вот визуальное представление моего прогресса на данный момент

Я не буду об этом писать, но если вы хотите настроить свою среду Golang, посмотрите это видео. Кроме того, чтобы настроить VSCode для Golang, см. видео Джона Кода здесь.

Код и практика здесь;

Если вам это нужно, вот доступ к коду на GitHub.

Хорошо, давайте перейдем к мелочам. Собственно код. Реальная вещь и реальная сделка. Мне легче писать о вещах, которые я только усваиваю и только учусь, в отличие от концепций, которые я уже освоил. Это скучно. Я много говорю скучно, но это правда. Тем не менее, часть моих целей в этой серии также состоит в том, чтобы помочь новичкам Голанга начать работу в той или иной форме, поэтому я все равно заставлю себя сделать это и постараюсь изложить это как можно короче.

Совет новичку

В Интернете есть очень приятный инструмент под названием Go Playground, и вы можете начать писать код для Go без каких-либо настроек. Смотри сюда".

Вы также можете изучить некоторые концепции, которые я объясняю в этой серии, прежде чем я напишу о них и задам мне вопросы. Вы можете написать мне здесь. Если вы стесняетесь, вы также можете оставить анонимный вопрос на любопытном коте.

Просто Эй! Программа

Соглашение об организации ваших файлов Golang отличается от других языков программирования, которые вы, возможно, пробовали. Go использует пакеты, и компилятор go начинает компилировать ваш код, заглядывая в файл «main.go».

Вы заметите первую строку, которая говорит «package main». Go сначала ищет файл main.go, а затем проверяет, что вы объявили первую строку «package main». Когда вы узнаете больше и создадите новые пакеты в своих проектах Go, вы поймете, что Go обрабатывает основной пакет так же, как вы обрабатываете другие пакеты в своем проекте.

Объявление переменной

Go позволяет объявлять переменные по-разному. В строке 6 выше вы можете сделать это обычным способом. «var» сообщает компилятору Go, что мы собираемся объявить переменную и назовем ее «cardiB», это будет строковый тип. В строке 7 становится немного интереснее, потому что Go на самом деле делает несколько вещей, но более кратко. «:=» означает, что вы объявляете переменную карту и присваиваете ей значение «Пиковый туз». В следующей строке отсутствует двоеточие «:», и это означает, что вы переназначаете новое значение той же переменной «card».

Вы можете опробовать этот код на игровой площадке: https://play.golang.org/p/zUBy20gUW4f

Перейти к импорту

Вы можете использовать функции и пакеты из других источников. Этими источниками могут быть встроенные пакеты Golang, сторонние пакеты или пакеты, которые вы создаете сами. Быстрый пример — пакет «fmt» в строке 3 выше. Это можно сделать с помощью ключевого слова import (как в строке 3). Пакет «fmt» содержит и экспортирует несколько функций, и одна из них — «Println()», которая записывает информацию в терминал/консоль. Есть и другие встроенные пакеты Golang, которые вы изучите по ходу работы.

Массивы и срезы

Массивы в Голанге почти такие же, как и в других языках. Срезы — это другая и гораздо более динамичная версия массивов. В Golang при объявлении массива вы объявляете его, зная точную длину. Массивы полезны, когда вы знаете точный максимальный размер набора элементов. Например, в семье 5 человек (отец, мать и 3 ребенка). Список родителей может быть представлен в виде массива. Приведенный выше код описывает, как вы создаете массив, и их размер не изменяется.

С другой стороны, фрагменты являются динамическими, и нет ограничений на количество элементов, которые вы можете добавлять к ним.

Попробуйте изменить код здесь: https://play.golang.org/p/Ep4v-SwPXr-

Функции и операторы возврата

Функции — это способ сгруппировать множество операторов с попыткой достичь определенной цели или произвести результат. Фрагмент кода выше объявляет функцию «newCard()», которая возвращает определенный тип карты. Важно отметить, что это не типичная реализация, а пока просто примите ее такой, какая она есть. Обычно вы хотите обработать данные и вернуть значение.

Например, подумайте о своей морозильной камере как о функции. Морозильник принимает скоропортящиеся продукты и возвращает замороженную версию того, что вы ему дали. Примерно так работают функции.

Это нормально — не понимать каждую часть приведенного выше фрагмента кода, это цель для новичков. Я объясню больше в следующем выпуске.

А пока загляните сюда(https://play.golang.org/p/dUPCrhtsl7n) и попытайтесь понять, как это работает, вы можете написать мне в твиттер, если у вас возникнут вопросы (@DanielOsineye) или задать через любопытный кот (https://curiouscat.me/DanielOsineye), если стесняетесь. Вы также можете оставить комментарий ниже.

Чао!

Даниэль.