Как установить golang windows
Installing Go from source
This topic describes how to build and run Go from source code. To install with an installer, see Download and install.
Introduction
Go is an open source project, distributed under a BSD-style license. This document explains how to check out the sources, build them on your own machine, and run them.
Most users don’t need to do this, and will instead install from precompiled binary packages as described in Download and install, a much simpler process. If you want to help develop what goes into those precompiled packages, though, read on.
The compilers can target the AIX, Android, DragonFly BSD, FreeBSD, Illumos, Linux, macOS/iOS (Darwin), NetBSD, OpenBSD, Plan 9, Solaris, and Windows operating systems (although not all operating systems support all architectures).
A list of ports which are considered «first class» is available at the first class ports wiki page.
The full set of supported combinations is listed in the discussion of environment variables below.
See the main installation page for the overall system requirements. The following additional constraints apply to systems that can be built only from source:
Install Go compiler binaries for bootstrap
There are four possible ways to obtain a bootstrap toolchain:
These approaches are detailed below.
Bootstrap toolchain from binary release
To use a binary release as a bootstrap toolchain, see the downloads page or use any other packaged Go distribution.
Bootstrap toolchain from cross-compiled source
To cross-compile a bootstrap toolchain from source, which is necessary on systems Go 1.4 did not target (for example, linux/ppc64le ), install Go on a different system and run bootstrap.bash.
When run as (for example)
Bootstrap toolchain using gccgo
Bootstrap toolchain from C source code
To build a bootstrap toolchain from C source code, use either the git branch release-branch.go1.4 or go1.4-bootstrap-20171003.tar.gz, which contains the Go 1.4 source code plus accumulated fixes to keep the tools running on newer operating systems. (Go 1.4 was the last distribution in which the toolchain was written in C.) After unpacking the Go 1.4 source, cd to the src subdirectory, set CGO_ENABLED=0 in the environment, and run make.bash (or, on Windows, make.bat ).
Note that Go 1.4 does not run on all systems that later versions of Go do. In particular, Go 1.4 does not support current versions of macOS. On such systems, the bootstrap toolchain must be obtained using one of the other methods.
Install Git, if needed
To perform the next step you must have Git installed. (Check that you have a git command before proceeding.)
If you do not have a working Git installation, follow the instructions on the Git downloads page.
(Optional) Install a C compiler
To build a Go installation with cgo support, which permits Go programs to import C libraries, a C compiler such as gcc or clang must be installed first. Do this using whatever installation method is standard on the system.
Fetch the repository
Where is the version string of the release.
Reminder: If you opted to also compile the bootstrap binaries from source (in an earlier section), you still need to git clone again at this point (to checkout the latest ), because you must keep your go1.4 repository distinct.
(Optional) Switch to the master branch
If you intend to modify the go source code, and contribute your changes to the project, then move your repository off the release tag, and onto the master (development) branch. Otherwise, skip this step.
Install Go
To build the Go distribution, run
If all goes well, it will finish by printing output like:
where the details on the last few lines reflect the operating system, architecture, and root directory used during the install.
For more information about ways to control the build, see the discussion of environment variables below. all.bash (or all.bat ) runs important tests for Go, which can take more time than simply building Go. If you do not want to run the test suite use make.bash (or make.bat ) instead.
Testing your installation
Check that Go is installed correctly by building a simple program.
Create a file named hello.go and put the following program in it:
Then run it with the go tool:
If you see the «hello, world» message then Go is installed correctly.
Set up your work environment
You’re almost done. You just need to do a little more setup.
The How to Write Go Code document provides essential setup instructions for using the Go tools.
Install additional tools
The source code for several Go tools (including gopls) is kept in the golang.org/x/tools repository. To install one of the tools ( gopls in this case):
Community resources
The usual community resources listed on the help page have active developers that can help you with problems with your installation or your development work. For those who wish to keep up to date, there is another mailing list, golang-checkins, that receives a message summarizing each checkin to the Go repository.
Bugs can be reported using the Go issue tracker.
Keeping up with releases
To update an existing tree to the latest release, you can run:
Where is the version string of the release.
Optional environment variables
The Go compilation environment can be customized by environment variables. None is required by the build, but you may wish to set some to override the defaults.
The name of the host operating system and compilation architecture. These default to the local system’s operating system and architecture.
This variable controls how gc implements floating point computations.
This sets the ARM floating point co-processor architecture version the run-time should target. If you are compiling on the target system, its value will be auto-detected.
If in doubt, leave this variable unset, and adjust it if required when you first run the Go executable. The GoARM page on the Go community wiki contains further details regarding Go’s ARM support.
These variables set whether to use floating point instructions. Set to » hardfloat » to use floating point instructions; this is the default. Set to » softfloat » to use soft floating point.
This variable is a comma separated list of experimental WebAssembly features that the compiled WebAssembly binary is allowed to use. The default is to use no experimental features.
although, to reiterate, none of these variables needs to be set to build, install, and develop the Go tree.
Установка Golang в WSL (WSL 2) с помощью Visual Studio Code
Здравствуйте! В статье представленна инструкция по установке языка программирования Golang в подсистему Linux на Windows 10 (11). Если у вас уже установлен WSL2 и Visual Studio Code, то смело переходи на 3 часть этой статьи, для всех других же.
WSL 1 (WSL 2)
Ребята из Мягкого софта написали гайд для тебя (Install WSL on Windows 10 | Microsoft Docs), но если хочешь можешь воспользоваться моими шагами.
Для начала нам необходимо включить поддержку WSL. Запустите PowerShell с правами администратора и выполните следующую команду:
При появлении соответствующего запроса перезагрузите компьютер.
Чтобы скачать и установить предпочтительные дистрибутивы, у вас есть три варианта:
Скачать и установить из Microsoft Store;
Скачать и установить с помощью командной строки или сценария;
Включает дополнительные компоненты WSL и Virtual Machine Platform;
Скачивает и устанавливает последнее ядро Linux;
Устанавливает WSL 2 по умолчанию;
Скачивает и устанавливает дистрибутив Ubuntu Linux (может потребоваться перезагрузка)
После завершения установки вам будет предложено создать учетную запись пользователя (и ее пароль).
Информация о новой учетной записи пользователя Linux
Учетная запись предназначена для обычного пользователя без прав администратора, который будет использоваться по умолчанию для входа в систему при запуске дистрибутива;
Вы можете выбрать любое имя пользователя и пароль, которые не связаны с именем пользователя Windows;
Когда вы открываете новый экземпляр дистрибутива, вам не будет предложено ввести пароль, но если вы повысите привилегии процесса, используя sudo, вам нужно будет указать пароль. Поэтому убедитесь, что вы выбрали пароль, который вы можете легко запомнить. Дополнительные сведения приведены на странице «Учетные записи пользователей и разрешения для подсистемы Windows для Linux».
Если в результате стандартной установки ваш WSL остался на первой версии, то обратитесь к Step 4.
Visual Studio Code (Remote WSL)
После установки утилиты в VSC, вы сможете подключится к директориям в WSL. У вас есть возможность редактировать любые фалы которые находятся в WSL.
Golang
Имея WSL2 и VSCode мы готовы с вами к установке языка Golang. Зайдём на сайт и посмотрим актуальную стабильную версию (Standard library · pkg.go.dev), на момент написания статьи это go1.16.7
«Обновления обряд совершить не забудь ты»
Теперь пришло время загрузить golang. Откройте терминал в VSC ( ctrl + ` ) и введите следующие команды, но замените на актуальную версию Go во время загрузки.
Заходим в наш WSL и проверяем версию языка go version
Ну вот и всё! Всем удачи в использовании Golang!
Golang
Введение
Go (часто также golang) — компилируемый многопоточный язык программирования, разработанный внутри компании Google.
Разработка Go началась в сентябре 2007 года, его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno.
Также Go поддерживается набором компиляторов gcc, существует несколько независимых реализаций. Ведётся разработка второй версии языка.
Комментарии
package main // Комментарий /* Комментарий На несколько строк */
Форматирование кода
Отступы нужно ставить с помощью табуляции. Не с помощью пробелов.
Пробел или отсутствие табуляции не сломают компиляцию но рекомендовано сообществом
package main import ( «fmt» )
Объявление функции и открывающая фигурная скобка должны быть на одной строке
./prog.go:7:6: missing function body
./prog.go:8:1: syntax error: unexpected semicolon or newline before <
prog.go:8:1: unexpected semicolon or newline before <
Установка
Про установку в Linux читайте в статье
Чтобы установить в Windows просто скачайте Go с golang.org и установите в C:\Go\
Это важно так как Go подразумевает, что он установлен в C:\Go\ в Windows и в
Команда go
Выполните команду go без аргументов
Go is a tool for managing Go source code. Usage: go [arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages Use «go help » for more information about a command. Additional help topics: buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum packages package lists and patterns private configuration for downloading non-public code testflag testing flags testfunc testing functions vcs controlling version control with GOVCS Use «go help » for more information about that topic.
Пример применения go help doc можете изучить здесь
Настройка Visual Studio Code
Затем нужно установить расширение (Extension) Go.
Rich Go language support for Visual Studio Code
Go: Install/Update Tools
Выберите всё и нажмите OK
All tools successfully installed. You’re ready to Go :).
Запуск скрипта
Рассмотрим скрипт main.go следующего содержания
module
Проекты нужно оформлять в виде модулей.
/gocode
go mod init github.com/youraccount/projectname
go: creating new go.mod: module github.com/youraccount/projectname
Желательно сразу называть их так, чтобы было соответствие между проектом и удалённым репозиторием.
Про git, github, gitlab и похожие темы можете прочитать в статье git
🏃 Самоучитель для начинающих: как освоить Go с нуля за 30 минут?
Установка Go
Нажимаем на Download Go.
Выбираем версию для своей операционной системы и скачиваем.
Чтоб убедиться в успешной установке введите команду go version в консоли или терминале:
Установка редактора кода
Go поддерживается в различных редакторах кода (IDE), к примеру:
Создание проекта
Далее создадим файл main.go и запишем в него следующий код:
Компиляция и запуск программы
Чтобы запустить код, откройте консоль или терминал. Далее перейдите в каталог, где расположен файл main.go и выполните команду:
Результат работы программы будет следующим:
Вы написали первую программу на Go, поздравляем!
Давайте разберем, что здесь происходит:
Переменные
Переменные в Go характеризуются названием и типом, они должны объявляться до первого использования.
Объявление переменной в Go:
Базовые типы данных:
Если начальное значение переменной известно во время объявления, можно воспользоваться краткой записью:
Чтобы записать значение в переменную после ее объявления, воспользуйтесь оператором = :
Над переменными можно производить операции с помощью операторов. Например, числа можно сравнить, а строки конкатенировать.
Список операторов Go:
Управляющие конструкции
Для управления тем, какие строки кода исполнятся и в каком порядке, существуют специальные конструкции. Давайте перечислим основные:
Следование
Весь код исполняется последовательно, строка за строкой.
Условие
Для исполнения участка кода в зависимости от условия используется условная конструкция if :
Чтобы определить код, который выполнится при невыполнении ни одного условия можно добавить else :
Циклы
Этот цикл распечатает значения от 1 до 10.
Если нужен цикл без счетчика, нужно опустить первую и третью части цикла for вместе с точкой запятой:
На каждом повторении цикла будет проверяться заданное условие. Пока условие истинно, цикл будет продолжаться. Как только условие станет ложным, он прервется.
Для бесконечного цикла можно опустить условие:
Чтобы остановить цикл, используется ключевое слово break :
При достижении конструкции break цикл будет завершен.
Массивы
Обращение к элементам массива производится по имени массива и индексу элемента. Элементы массива индексируются с нуля.
Заполнение массива значениями:
Если начальное значение массива известно при объявлении, можно воспользоваться литералом объявления массива:
Для избежания лишнего кода воспользуемся кратким объявлением:
Размер массива статичен и не может меняться во время выполнения программы. Для этих целей используются слайсы.
Слайсы
Слайс является более удобной альтернативой массиву. Объявление слайса отличается от объявления массива только отсутствием размера:
Слайс может менять размер во время выполнения программы. Для добавления новых элементов в слайс используется встроенная функция append :
Функции
Для переиспользования часто используемого кода нужны функции.
Функция должна быть объявлена вне функции main :
После ключевого слова func указывается название функции. Далее в круглых скобках аргументы, которые принимает функция. После закрывающей круглой скобки указывается одно или несколько возвращаемых значений функции, а затем следует код функции в операторных скобках.
Функция Sum складывает два числа и возвращает результат:
Функция SumAndDivide возвращает как сумму, так и частное чисел:
Обе функции доступны в функции main:
Пакеты
Импорт и использование пакета strings :
Первое серверное приложение “Hello Web”
В пакете http содержится все необходимое для создания веб-сервера.
Поздравляем, вы написали ваш первый веб-сервер на Go!
Литература
Онлайн ресурсы
Go в “Библиотеке Программиста”
Мы пробежались по основам Go: переменные, операторы, управляющие конструкции, функции.
Ценностями языка являются:
Go современный, широко используемый и востребуемый язык программирования, который стоит начать изучать прямо сейчас.
Go используется в Google, Netflix, Facebook, Paypal, Microsoft и во многих других компаниях. Этот язык доступен каждому, но научиться создавать на нем профессиональные, безопасные и масштабируемые сервисы можно только перенимая знания опытных специалистов. Обратите внимание на современный курс «Разработка на Go» образовательной онлайн-платформы GeekBrains, который подойдет новичкам и действующим программистам на других языках. Эксперты из ведущих российских компаний поделятся со слушателями опытом разработки реальных систем на Go. В процессе обучения вы сделаете 5 проектов для портфолио, а после завершения курса получите удостоверение о повышение квалификации и помощь в трудоустройстве.
Быстрый старт с Go: первые шаги
Go (также Golang) – компилируемый язык программирования, разработанный в компании Google и официально представленный в 2009 году. Он предназначен для создания высокоэффективных программ, рассчитанных на многоядерные и многопроцессорные компьютеры.
В этой статье мы рассмотрим азы Go, делая простые последовательные шаги:
Устанавливаем компилятор
Сначала посетим официальный сайт golang.org, чтобы скачать и инсталлировать компилятор Go. После этого в командной строке (терминале) станет доступна команда go. Вот пример диалога в командной строке Windows – здесь используется параметр version, который показывает версию установленного компилятора:
Пишем «Hello, World!»
Писать исходный код можно в любом текстовом редакторе. А компиляцию и запуск проводить в командной строке (терминале).
Разумеется, лучше использовать редактор с подсветкой синтаксиса и плагином, автоматизирующим компиляцию и запуск. Для Windows подойдёт Notepad++ с плагином NppExec. Для Linux и Мас – Geany или Atom. Подробно об их настройке можно прочитать в статье «Пишем код на Java и Go в текстовом редакторе».
Писать при изучении нового языка код, который выводит «Hello, world!», – давняя традиция. Она появилась в 1978 году с выходом книги «Язык программирования С» Брайана Кернигана и Денниса Ричи. Идея такой программы – создать минимальный по объёму работающий код.
Код начинается с ключевого слова package – объявления имени пакета. Для исполняемых файлов это всегда будет main, а для библиотек – имя директории, в которой находится файл. Функция main() – стартовая, своего рода точка входа в приложение. Она содержит вызов встроенной функции println(), которая выводит в консоль текст в скобках, заключённый в кавычки.
Набранный в редакторе код сохраняем в файле с именем hello.go. Теперь можно перейти в командную строку и запустить нашу программу для исполнения. Обратите внимание – нужно перейти в каталог, где мы сохранили файл. Вызываем go, указывая параметр run и имя файла через пробелы.
Знакомимся с переменными
В программировании традиционно разделяют код и данные.
Для хранения данных используются переменные. Их можно представить образно – как коробки с данными, на каждой из которых написаны имя и тип переменной. Нам доступны:
В Go любую переменную перед использованием необходимо объявить, то есть подготовить соответствующую коробку, указав тип и имя. Это связано с тем, что Go – язык со строгой и статической типизацией. Попытка использовать переменную без предварительного объявления приведёт к ошибке компиляции.
В этом примере для вывода приветствия используется строчная переменная. Она объявляется при помощи ключевого слова var, после имени указывается тип string. Знак равенства означает присваивание, запись значения в переменную.
Допустима сокращённая запись, без указания типа и слова var. В этом случае перед знаком равенства ставится двоеточие (получается := вместо =). И компилятор определяет тип по значению, которое присваивается.
Правильное именование переменных – важная часть разработки. Имена должны начинаться с буквы и могут содержать буквы, цифры и знак _ (подчёркивание). Имя должно быть мнемоническим – то есть «говорящим», объясняющим назначение переменной.
Узнаём про условия и циклы
В программировании часто требуется выполнять одну или другую группу команд в зависимости от результата проверки (ветвление). Такую возможность предоставляет оператор if.
Эта программа иллюстрирует ветвление, моделируя ситуацию с чайником. После ключевого слова if идёт логическое выражение (water == 0), где значение переменной water сравнивается с нулём на равенство. Если water равна нулю (в чайнике нет воды), то результат выражения будет true (истина). И, согласно заданному условию, будет выполнен блок команд в фигурных скобках после логического выражения. В противном случае – если результат выражения false – выполнится блок после else.
Помимо ветвлений в программировании используются циклы, позволяющие повторять группы (блоки) команд. Работу с циклами в Go обеспечивает оператор for. Его базовая форма содержит три фрагмента (инициализация, условие, приращение). Первый и последний фрагменты могут отсутствовать. Пустой for создаёт бесконечный цикл.
Ниже приводим код, который иллюстрирует классический for, с использованием счётчика i. Результатом его работы будет колонка чисел от 0 до 4 – значения счётчика цикла на каждой итерации (повторе).
Импортируем пакеты
Один из важных принципов программирования – DRY: Don’t Repeat Yourself (не повторяйся). Это значит, что нам не нужно писать все модули своей программы с нуля. Вместо этого можно использовать уже готовые блоки или фрагменты, написанные кем-то ранее.
Поэтому Go поставляется с богатой библиотекой, которая содержит множество пакетов (packages). Каждый пакет имеет определённую тематику, на которую указывает его имя, и содержит соответствующие функции. Подробную документацию с описанием всех пакетов и функций можно найти на сайте Go в разделе “Packages”.
Если мы хотим использовать ту или иную функцию, нужно импортировать соответствующий пакет. К примеру, функции форматированного ввода-вывода содержатся в пакете fmt. Чтобы их применить, нужно добавить в код команду импорта, указывая имя пакета, и через точку после него вызывать нужную функцию.
Создаём игру «Угадай число»
Наших знаний Go уже достаточно, чтобы написать игру «Угадай число». В ней компьютер загадывает целое число от 0 до 9, а человек должен отгадать его с трёх попыток.
Нам потребуются функции из пакета fmt для ввода-вывода и функция генерации случайных чисел из пакета rand.
Объявим и инициируем три целочисленные переменные: счётчик неудачных попыток – count, ввод числа с консоли – guess, загаданное число – number.
Напишем основной игровой цикл. Условие его повторения описано после слова for. Тело цикла повторяется, пока значение счётчика неудачных попыток не достигнет числа 3 и при этом “загаданное” число ещё не будет отгадано.
В теле цикла читаем число-догадку с консоли и сравниваем с загаданным. В случае несовпадения выводим подсказку (больше или меньше) и увеличиваем счётчик неудачных попыток на 1. В случае совпадения цикл прекратится.
Также понадобится вывести результат игры (победа или проигрыш) после завершения игрового цикла.
Остаётся правильно собрать все эти фрагменты в одном файле – и можно пробовать сыграть с компьютером.
Поиграв с компьютером, мы обнаружим странное поведение генератора случайных чисел. А именно: раз за разом он генерирует одинаковую последовательность. Впрочем, это легко исправить следующей строкой кода, которую надо вставить до генерации случайного числа. Не забудьте при этом импортировать пакет time.
Заключение
Если у вас всё получилось — поздравляю. Если нет и возникли вопросы — пишите, спрашивайте, не стесняйтесь. Меня можно найти в Telegram под ником @biblelamp или на сайте GeekBrains. Я желаю всем удачи и рекомендую никогда не останавливаться в изучении программирования.
А тех, кто решил досконально освоить язык Go, мы приглашаем на курс Go-разработки. Вы научитесь решать реальные бизнес-задачи с помощью Go, а также добавите в портфолио несколько разноплановых проектов, с которыми можно смело идти к будущему работодателю.
Go (также Golang) – компилируемый язык программирования, разработанный в компании Google и официально представленный в 2009 году. Он предназначен для создания высокоэффективных программ, рассчитанных на многоядерные и многопроцессорные компьютеры.
В этой статье мы рассмотрим азы Go, делая простые последовательные шаги:
Устанавливаем компилятор
Сначала посетим официальный сайт golang.org, чтобы скачать и инсталлировать компилятор Go. После этого в командной строке (терминале) станет доступна команда go. Вот пример диалога в командной строке Windows – здесь используется параметр version, который показывает версию установленного компилятора:
Пишем «Hello, World!»
Писать исходный код можно в любом текстовом редакторе. А компиляцию и запуск проводить в командной строке (терминале).
Разумеется, лучше использовать редактор с подсветкой синтаксиса и плагином, автоматизирующим компиляцию и запуск. Для Windows подойдёт Notepad++ с плагином NppExec. Для Linux и Мас – Geany или Atom. Подробно об их настройке можно прочитать в статье «Пишем код на Java и Go в текстовом редакторе».
Писать при изучении нового языка код, который выводит «Hello, world!», – давняя традиция. Она появилась в 1978 году с выходом книги «Язык программирования С» Брайана Кернигана и Денниса Ричи. Идея такой программы – создать минимальный по объёму работающий код.
Код начинается с ключевого слова package – объявления имени пакета. Для исполняемых файлов это всегда будет main, а для библиотек – имя директории, в которой находится файл. Функция main() – стартовая, своего рода точка входа в приложение. Она содержит вызов встроенной функции println(), которая выводит в консоль текст в скобках, заключённый в кавычки.
Набранный в редакторе код сохраняем в файле с именем hello.go. Теперь можно перейти в командную строку и запустить нашу программу для исполнения. Обратите внимание – нужно перейти в каталог, где мы сохранили файл. Вызываем go, указывая параметр run и имя файла через пробелы.
Знакомимся с переменными
В программировании традиционно разделяют код и данные.
Для хранения данных используются переменные. Их можно представить образно – как коробки с данными, на каждой из которых написаны имя и тип переменной. Нам доступны:
В Go любую переменную перед использованием необходимо объявить, то есть подготовить соответствующую коробку, указав тип и имя. Это связано с тем, что Go – язык со строгой и статической типизацией. Попытка использовать переменную без предварительного объявления приведёт к ошибке компиляции.
В этом примере для вывода приветствия используется строчная переменная. Она объявляется при помощи ключевого слова var, после имени указывается тип string. Знак равенства означает присваивание, запись значения в переменную.
Допустима сокращённая запись, без указания типа и слова var. В этом случае перед знаком равенства ставится двоеточие (получается := вместо =). И компилятор определяет тип по значению, которое присваивается.
Правильное именование переменных – важная часть разработки. Имена должны начинаться с буквы и могут содержать буквы, цифры и знак _ (подчёркивание). Имя должно быть мнемоническим – то есть «говорящим», объясняющим назначение переменной.
Узнаём про условия и циклы
В программировании часто требуется выполнять одну или другую группу команд в зависимости от результата проверки (ветвление). Такую возможность предоставляет оператор if.
Эта программа иллюстрирует ветвление, моделируя ситуацию с чайником. После ключевого слова if идёт логическое выражение (water == 0), где значение переменной water сравнивается с нулём на равенство. Если water равна нулю (в чайнике нет воды), то результат выражения будет true (истина). И, согласно заданному условию, будет выполнен блок команд в фигурных скобках после логического выражения. В противном случае – если результат выражения false – выполнится блок после else.
Помимо ветвлений в программировании используются циклы, позволяющие повторять группы (блоки) команд. Работу с циклами в Go обеспечивает оператор for. Его базовая форма содержит три фрагмента (инициализация, условие, приращение). Первый и последний фрагменты могут отсутствовать. Пустой for создаёт бесконечный цикл.
Ниже приводим код, который иллюстрирует классический for, с использованием счётчика i. Результатом его работы будет колонка чисел от 0 до 4 – значения счётчика цикла на каждой итерации (повторе).
Импортируем пакеты
Один из важных принципов программирования – DRY: Don’t Repeat Yourself (не повторяйся). Это значит, что нам не нужно писать все модули своей программы с нуля. Вместо этого можно использовать уже готовые блоки или фрагменты, написанные кем-то ранее.
Поэтому Go поставляется с богатой библиотекой, которая содержит множество пакетов (packages). Каждый пакет имеет определённую тематику, на которую указывает его имя, и содержит соответствующие функции. Подробную документацию с описанием всех пакетов и функций можно найти на сайте Go в разделе “Packages”.
Если мы хотим использовать ту или иную функцию, нужно импортировать соответствующий пакет. К примеру, функции форматированного ввода-вывода содержатся в пакете fmt. Чтобы их применить, нужно добавить в код команду импорта, указывая имя пакета, и через точку после него вызывать нужную функцию.
Создаём игру «Угадай число»
Наших знаний Go уже достаточно, чтобы написать игру «Угадай число». В ней компьютер загадывает целое число от 0 до 9, а человек должен отгадать его с трёх попыток.
Нам потребуются функции из пакета fmt для ввода-вывода и функция генерации случайных чисел из пакета rand.
Объявим и инициируем три целочисленные переменные: счётчик неудачных попыток – count, ввод числа с консоли – guess, загаданное число – number.
Напишем основной игровой цикл. Условие его повторения описано после слова for. Тело цикла повторяется, пока значение счётчика неудачных попыток не достигнет числа 3 и при этом “загаданное” число ещё не будет отгадано.
В теле цикла читаем число-догадку с консоли и сравниваем с загаданным. В случае несовпадения выводим подсказку (больше или меньше) и увеличиваем счётчик неудачных попыток на 1. В случае совпадения цикл прекратится.
Также понадобится вывести результат игры (победа или проигрыш) после завершения игрового цикла.
Остаётся правильно собрать все эти фрагменты в одном файле – и можно пробовать сыграть с компьютером.
Поиграв с компьютером, мы обнаружим странное поведение генератора случайных чисел. А именно: раз за разом он генерирует одинаковую последовательность. Впрочем, это легко исправить следующей строкой кода, которую надо вставить до генерации случайного числа. Не забудьте при этом импортировать пакет time.
Заключение
Если у вас всё получилось — поздравляю. Если нет и возникли вопросы — пишите, спрашивайте, не стесняйтесь. Меня можно найти в Telegram под ником @biblelamp или на сайте GeekBrains. Я желаю всем удачи и рекомендую никогда не останавливаться в изучении программирования.
А тех, кто решил досконально освоить язык Go, мы приглашаем на курс Go-разработки. Вы научитесь решать реальные бизнес-задачи с помощью Go, а также добавите в портфолио несколько разноплановых проектов, с которыми можно смело идти к будущему работодателю.