В этом уроке я расскажу о том, как работает go, изучив 6 строк кода hello world. Некоторые учебники могут не объяснять подробно, что означает каждая строка, и сразу переходить к кодированию. Но здесь я собираюсь объяснить вам, что происходит за кулисами, когда вы запускаете этот простой код, объясняя некоторые очень базовые концепции программирования.

  • Компиляция
  • Пакеты
  • Код Привет, мир
  • Рабочее пространство Go
  • Запуск вашего кода

Компиляция

Чтобы понять, как работает go, нам сначала нужно понять, что значит «компилировать» код. Языки программирования, которые мы обычно используем, такие как Golang, C, C ++, JAVA, python… это «языки высокого уровня», то есть они удобочитаемы.

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

Допустим, вы делаете программу-калькулятор. Вы написали код в несколько файлов, которые красиво организованы в каталог. Затем, когда вы закончите, вы компилируете его, а затем компилятор превратит ваш читаемый человеком код в машиночитаемый и выдаст исполняемый файл. Вы можете запустить программу калькулятора, запустив этот исполняемый файл.

Пакеты

На golang.org есть страница Как писать код Go. Там сказано: Пакет - это набор исходных файлов в одном каталоге, которые скомпилированы вместе. Здесь ничего сложного. Исходный файл означает просто код, который вы написали и сохранили в файле, и мы уже знаем, что такое компиляция, поэтому мы можем понять это определение, которое в основном просто говорит о том, что пакет - это набор файлов .go в каталоге, который будут скомпилированы вместе.

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

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

Например, если мы хотим создать приложение-калькулятор, нам не нужно записывать все математические функции, нам просто нужно использовать пакет, в котором есть эти математические функции, и импортировать его в наш код.

Привет, мир!

Теперь, когда у нас есть общее представление о том, что такое компиляция и что такое пакеты, давайте приступим к изучению кода hello world.

Первая строка «package main» означает, что этот файл .go принадлежит пакету с именем main. Помните, как я сказал, что все файлы .go должны принадлежать пакету? Все файлы с расширением .go должны иметь в первой строке слово «package something». Нам нужно, чтобы этот пакет был исполняемой программой, поэтому мы должны назвать этот пакет «основным», что означает, что в этом пакете будет точка входа для выполнения, и это правило. Если вы хотите, чтобы ваш код работал как отдельная программа, он должен включать пакет с именем main.

Теперь перейдем к строке 5. Каждый раз, когда мы хотим написать код и запустить его, мы должны указать машине, где должно начаться выполнение. Мы делаем это, написав функцию с именем main, как в строке 5. Машина будет искать функцию с именем main, чтобы найти точку входа в программу, которая будет код в фигурных скобках. Функция - это блок кода, который может выполнять определенную задачу и может быть повторно использован здесь и там. Вы можете объявить функцию с любым именем, используя func. Но в этом случае вам нужно назвать его главным, потому что вы говорите машине, что именно здесь начинается ваш код.

Теперь давайте посмотрим на строку 3. import fmt означает, что нужно добавить пакет с именем fmt в этот пакет, который является основным пакетом. Итак, в основном здесь, в строке 1 и строке 3, мы говорим: «Эй, этот файл находится в основном пакете, и я также хочу включить в этот основной пакет еще один пакет, называемый fmt. fmt - стандартный пакет, предоставляемый go, и внутри этого пакета есть функция под названием Println, и поскольку мы импортировали fmt, мы можем использовать функцию Println, используя fmt. Println в строке 6. Println - это функция, которая принимает все, что указано в скобках, и показывает это нам в окне терминала.

Подводя итог, в строке 1 говорится, что этот файл будет в пакете с именем main, и его нужно назвать основным, потому что он включает точку входа в программу. Строка 5 - это фактическая отправная точка, и мы знаем это, потому что это основная функция. Строка 3 здесь, потому что нам нужно импортировать пакет fmt, чтобы использовать функцию Println в строке 6, которая позволит нам распечатать hello world на терминале.

Go Workspace

Внутри GOPATH вы должны создать три каталога: src, bin и pkg. После первой установки go введите в командной строке go env, чтобы проверить GOPATH. Обычно это должно быть (ваш дом) / go. Если у вас нет каталога go, как в GOPATH, вам придется его создать, а внутри каталога go создать src, bin и pkg.

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

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

В каталоге pkg будут храниться неисполняемые пакеты. У этих пакетов нет основного файла, поэтому вы не можете превратить их в исполняемый файл и запустить их. Вместо этого вы можете импортировать их в другие исполняемые пакеты и использовать их.

Итак, это краткое объяснение рабочей области go. Теперь давайте поговорим о компиляции и запуске исходного кода.

Запуск вашего кода

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

Посмотрим, что они из себя представляют.

Если вы установите Go, вы можете использовать несколько программ, которые помогут вам собрать или протестировать исходный код. «Go» - одна из программ, которые вы можете использовать. Чтобы использовать программу go, просто введите go в командной строке, затем введите пробел и напишите команду, которую нужно использовать.

Посмотрим, какие команды вы можете использовать. Вы можете увидеть список команд, набрав go help. Или вы также можете просто проверить Справочник по инструментам Go. Среди команд в этом списке run, build и install - это те, которые могут скомпилировать ваш код. В последнем видео мы уже опробовали некоторые команды, например go env и go version, которые вы также можете увидеть в этом списке.

Самый простой способ скомпилировать и запустить исходный код - просто использовать команду «go run». Допустим, мы сохранили файл hello world как main.go в каталоге first_tutorial внутри каталога src.

Перейдите в каталог пакета first_tutorial и просто скажите «go run main.go». Он запустит код и отобразит «Hello World» в терминале. Но помните, как я сказал, что если вы скомпилируете программу, она выведет исполняемый файл? если вы используете команду go run, она не покажет исполняемый файл. Команда запуска выведет исполняемый файл как временный файл и удалит его после выполнения.

Если вы действительно хотите вывести исполняемый файл, который будет исполняемым файлом в Windows и двоичным файлом в Mac, вам придется использовать команду go build.

В этом случае после сборки кода вы увидите исполняемый файл в текущем каталоге. Если вы хотите запустить этот исполняемый файл, просто введите имя файла в командной строке.

Третий - пойти и установить. Это также скомпилирует ваш код, но вместо того, чтобы оставить исполняемый файл в текущем каталоге, он поместит файл в каталог bin. Если вы устанавливаете свой пакет, вы можете запустить этот исполняемый файл в каталоге bin из любого места, если у вас есть путь bin, добавленный в переменную среды.

Подведение итогов

До сих пор мы рассматривали компиляцию, пакеты, код hello world, рабочую область go и то, как запускать исходный код. Думаю, теперь вы лучше понимаете, как работает го. Знание того, как все это работает, поможет вам построить прочный фундамент. Я даже видел несколько уроков, которые обучают на игровой площадке го. это просто, потому что вам не нужно ничего настраивать. Это позволит вам сразу приступить к программированию. Но есть и обратная сторона: если у вас нет этой первоначальной проблемы с настройкой, использованием командной строки и инструментов go, вы упускаете возможность получить более глубокое понимание основных концепций программирования, таких как пакеты и компиляция.