Ungkue language что это ungkue
Из техпода в программисты (или Golang для самых маленьких)
Доброго времени суток, Хабровчане!
Предисловие
Мне 26 лет, 5.5 лет проработал в технической поддержке и окончательно выгорел. Решил заниматься тем, что меня действительно воодушевляет и от чего испытываю удовольствие.
Данный цикл статей предназначен в первую очередь для себя самого чтобы быстрее усвоить материал, а также для новичков в программировании которые как и я хотят освоить язык и заниматься интересными проектами.
На своём жизненном пути я уже знакомился с HTML, CSS и его препроцессорами, Javascript, PHP, SQL, немного Python, C#, Java. Даже реализовал несколько веб проектов, решил некоторые рабочие задачи, но меня постоянно что-то не устраивало. Я хотел найти “идеальный” для себя язык с которым мне было бы приятно работать и наткнулся на Golang.
Почему именно Golang? Go понравился мне по нескольким причинам.
“Из коробки” имеет многопоточность
Сборщик мусора о котором нет необходимости задумываться
Развивается как open source проект
Что рассмотрим в этой статье
Что нужно для работы с Go
Основные типы данных
Условные выражения и условные конструкции
Что нужно для работы с Go
Для написания кода можно использовать специальные интегрированные среды разработки (IDE), которые поддерживают Go.
Самая многофункциональная IDE представлена компанией JetBrains и называется она GoLand, но не спешите её устанавливать. Есть ряд причин почему нет необходимости в таком большом инструменте.
для знакомства с языком и написания своих первых пет-проектов хватит и инструментов описанных ниже
Другие инструменты для разработки на Go:
Visual Studio Code + плагин для разработки на Go
Atom + плагин для разработки на Go
Sublime Text + плагин для разработки на Go
Существуют и другие IDE у которых есть плагины для Go например: Intellij IDEA, Netbeans. Но не думаю что стоит заострять на них внимание т.к. это достаточно большие IDE с обширным функционалом и новичок в них очень легко запутается.
Также можно программировать на Go прямо из браузера не устанавливая ничего на своё устройство.
Переменные
В Go имя переменной может быть произвольным и может состоять из алфавитных и цифровых символов, а также символа подчеркивания. При этом при объявлении переменной первый символ должен быть либо алфавитный символ, либо символ подчеркивания. Важно, что имена переменных не могут быть такими же как зарезервированные в Go кодовые слова: break, case, chan, const, continue, default, defer, else, fallthrough, for, func, go, goto, if, import, interface, map, package, range, return, select, struct, switch, type, var.
Самое простое определение переменной:
Эта переменная называется hello и представляет строковый тип данных string.
Можно одновременно объявить несколько переменных через запятую:
В этом случае объявлены переменные a, b и c которые имеют тип данных string. В конце также указывается тип данных и все переменные ему принадлежат.
Одновременно с объявлением переменной ей можно присвоить какое-то значение:
Такой прием называется инициализацией
Неявная типизация
При объявлении переменной можно не указывать её тип, если происходит явная инициализация переменной значением.
Так же можно объявить переменную сокращенным способом:
Такой способ эквивалентен предыдущему.
Если объявить переменную без указания типа и начального значения, это будет ошибкой.
Поэтому необходимо либо указать тип, либо начальное значение, либо и то и другое
Так же можно объявить несколько переменных
Основные типы данных
Стандартное значение для всех числовых типов = 0
Целочисленные типы
Тип с плавающей точкой
Они же десятичные дроби.
Комплексные типы
В Go присутствуют комплексные типы данных. На практике они имеют не очень большую популярность.
Подробнее про комплексные числа можете прочитать здесь
Логический тип
Строковый тип
Помимо обычных символов строка может содержать в себе специальные символы
Константы
Константы как и переменные хранят в себе некоторые данные, но в отличие от переменных их значения невозможно изменить т.к. они устанавливаются только один раз.
Для определения константы используется ключевое слово const.
Если мы попробуем изменить значение константы, то получим ошибку.
В одном представлении можно объявить сразу несколько констант
Если у константы не указан тип, то он выводится неявно в зависимости от того значения каким инициализируется константа
Также константам обязательно необходимо присваивать значения при объявлении.
Такое объявление констант недопустимо, потому что они не инициализируются.
Если определяется последовательность констант, то инициализацию значений можно опустить для всех констант кроме первой. В этом случае константа без значения получит его от предыдущей константы:
Важно, константы можно инициализировать только константными значениями, например числами, строками или значениями других констант. Но инициализировать константу значениями переменной нельзя:
Арифметические операции
У переменных есть разные операции, как в алгебре.
+ сложение
— вычитание
* умножение
/ деление
При делении необходимо быть внимательным! Если в операции два целых числа, то результат деления будет округляться до целого числа даже если результат деления присваивается переменной типа float32/float64:
Чтобы получить в результате деления вещественное число, хотя бы один из операндов должен быть вещественным числом:
% (деление по модулю) возвращает остаток от деления. В этой операции могут быть использованы только целые числа:
Постфиксный инкремент (x++). Увеличивает значение переменной на единицу:
Постфиксный декремент (x—). Уменьшает значение переменной на единицу:
Комментарии
Программа может содержать в себе комментарии. Комментарии необходимы для описания действий которые производит программа или какие-то её части. При компиляции программы комментарии не учитываются и не оказывают никакого влияния на работы программы. Комментарии бывают однострочными и многострочными.
Однострочный комментарий пишется в одну строку после двойного слеша (//), многострочный комментарий может заключаться между символами /* и */ и занимать несколько строк:
Ввод/вывод данных
Работать с переменными конечно интересно, но намного интереснее работать с ними и видеть как их значения выводятся через консоль. Для того чтобы это сделать, необходимо воспользоваться методом Scan из стандартного пакета Go под названием fmt, например:
Если проще, то введённое число или слово в консоль, запишется в эту переменную и будет в ней храниться пока не понадобится изменить значение переменной.
Теперь можно прочитать например, имя и возраст. Для начала создадим файл в любом удобном для вас месте на вашем компьютере. В моём случае это файл main.go расположенный по пути E:\main.go и содержит в себе следующий код:
В моем коде используется форматированный вывод, об этом способе вывода информации я подробнее напишу в следующих статьях. Но для особо любопытных, можете почитать вот здесь.
Далее чтобы увидеть работу этого кода и поиграть с ним, необходимо запустить командную строку или терминал. Например: Git Bash, встроенный терминал LiteIDE. Если пользуетесь этой IDE как я, терминал можно запустить сочетанием клавиш Ctrl+Shift+4. Итак, вводим заветную команду go run main.go и нажимаем Enter.
После консоль просит нас по очереди ввести имя и возраст. Когда программа получает эту информацию, выводится строка “Человеку по имени Авдей, 99 лет.” и программа завершает свою работу.
Условные выражения и условные конструкции
Операции отношения позволяют сравнивать два значения. В Go есть следующие операции отношения:
== Операция “равно”, возвращает true, если оба операнда равны или false если они не равны.
> Операция “больше чем”, возвращает true, если первый операнд больше второго, и false если первый операнд меньше второго, либо оба операнда равны.
= Операция “больше или равно”, возвращает true, если первый операнд больше второго или равен второму, и false если первый операнд меньше второго.
Заключение
В заключении статьи хотелось бы поделиться полезными ссылками:
50 оттенков Go. Очень полезная статья, спасибо VK Team за перевод оригинала
Для тех кто любит проходить различные курсы:
Программирование на Golang (курс составлен неплохо, но полные новички возможно испытают некоторые сложности из-за того, что нельзя посмотреть какими тестами облагаются задания)
Ресурсы с заданиями для практики:
Exercism. Имеется множество заданий различной сложности. Можно быть как студентом, так и ментором.
Спасибо за внимание. До новых встреч! Комментарии в студию 🙂