🏃 Самоучитель для начинающих: как освоить Go с нуля за 30 минут?
Важнейшей ценностью для создателей Go была простота. Код на этом языке легко писать, легко читать и в результате – проще поддерживать. В кратком руководстве мы окунемся в основы Go за полчаса. Обсудить Заходим на официальный сайт Go. Нажимаем на Download Go. Выбираем версию для своей операционной системы и скачиваем. Пользователям Windows нужно запустить установщик. Если вы используете Linux, придется распаковать скачанный архив в Чтоб убедиться в успешной установке введите команду Go поддерживается в различных редакторах кода (IDE), к примеру: Полный список IDE доступен по сылке: https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins Создадим директорию Должен появиться файл с названием Код на Go лежит в пакетах, а пакеты группируются в модули. Модуль – это набор пакетов Go с файлом Далее создадим файл main.go Чтобы запустить код, откройте консоль или терминал. Далее перейдите в каталог, где расположен файл Результат работы программы будет следующим: Вы написали первую программу на Go, поздравляем! Давайте разберем, что здесь происходит: Код, листинги которого будут приведены ниже, должны располагаться внутри фигурных (операторных) скобок функции Переменные в Go характеризуются названием и типом, они должны объявляться до первого использования. В Go нельзя объявить переменную и не использовать ее – программа не соберется. Объявление переменной в Go: Мы объявили переменную number с типом Базовые типы данных: При объявлении переменной устанавливается ее начальное значение. Для Если начальное значение переменной известно во время объявления, можно воспользоваться краткой записью: Чтобы записать значение в переменную после ее объявления, воспользуйтесь оператором Над переменными можно производить операции с помощью операторов. Например, числа можно сравнить, а строки конкатенировать. Список операторов Go: Для управления тем, какие строки кода исполнятся и в каком порядке, существуют специальные конструкции. Давайте перечислим основные: Весь код исполняется последовательно, строка за строкой. Для исполнения участка кода в зависимости от условия используется условная конструкция Сообщение не будет выведено на экран, так как условие ложно. На месте условия может использоваться все, результатом чего будет значение типа Чтобы определить код, который выполнится при невыполнении ни одного условия можно добавить Дополнительно к конструкции управления Роль Обратите внимание: для повторения участков кода в Go используется только цикл Этот цикл распечатает значения от 1 до 10. Если нужен цикл без счетчика, нужно опустить первую и третью части цикла На каждом повторении цикла будет проверяться заданное условие. Пока условие истинно, цикл будет продолжаться. Как только условие станет ложным, он прервется. Для бесконечного цикла можно опустить условие: Чтобы остановить цикл, используется ключевое слово При достижении конструкции Внутри цикла также можно использовать специально слово Массив – это последовательная группа ячеек памяти, имеющих одинаковое имя и одинаковый тип. Простое определение – набор упорядоченных элементов. Объявление массива: Обращение к элементам массива производится по имени массива и индексу элемента. Элементы массива индексируются с нуля. Заполнение массива значениями: Если начальное значение массива известно при объявлении, можно воспользоваться литералом объявления массива: Для избежания лишнего кода воспользуемся кратким объявлением: Размер массива статичен и не может меняться во время выполнения программы. Для этих целей используются слайсы. Слайс является более удобной альтернативой массиву. Объявление слайса отличается от объявления массива только отсутствием размера: Слайс может менять размер во время выполнения программы. Для добавления новых элементов в слайс используется встроенная функция Для переиспользования часто используемого кода нужны функции. Функция – это названный кусок кода, который может вызываться по имени. Мы уже использовали функцию Функция должна быть объявлена вне функции После ключевого слова Функция Функция Обе функции доступны в функции main: Писать код большой программы в одном файле неудобно. Тем более переиспользовать этот код нельзя. Поэтому код разбивается на пакеты – наборы файлов с расширением Импорт и использование пакета Ключевое слово В пакете Запустите код. Далее откройте браузер и перейдите по адресу http://localhost:9999/. Вы получите сообщение “Hello Web!” Функция Если вы перейдете по указанному адресу, вызовется функция Поздравляем, вы написали ваш первый веб-сервер на Go! *** Мы пробежались по основам Go: переменные, операторы, управляющие конструкции, функции. Ценностями языка являются: Go современный, широко используемый и востребуемый язык программирования, который стоит начать изучать прямо сейчас. *** Go используется в Google, Netflix, Facebook, Paypal, Microsoft и во многих других компаниях. Этот язык доступен каждому, но научиться создавать на нем профессиональные, безопасные и масштабируемые сервисы можно только перенимая знания опытных специалистов. Обратите внимание на современный курс «Разработка на Go» образовательной онлайн-платформы GeekBrains, который подойдет новичкам и действующим программистам на других языках. Эксперты из ведущих российских компаний поделятся со слушателями опытом разработки реальных систем на Go. В процессе обучения вы сделаете 5 проектов для портфолио, а после завершения курса получите удостоверение о повышение квалификации и помощь в трудоустройстве. Интересно, хочу попробоватьУстановка Go
/usr/local/go
и экспортировать путь /usr/local/go/bin
в переменную среды $PATH
. Получиться должна примерно следующая структура папок:go version
в консоли или терминале:Установка редактора кода
Создание проекта
helloworld
. Перейдем в нее и выполним команду:
go mod init helloworld
go.mod
. go.mod
в корне. Этот файл определяет путь модуля и набор импортируемых модулей. main.go
и запишем в него следующий код:
package main func main() { println("Hello World") }
Компиляция и запуск программы
main.go
и выполните команду:
go run main.go
main
– входная точка программы. С нее основная программа начинается и в ней же завершается.println
– функция, выводящая текст на экран консоли. Для вызова используется следующий синтаксис: название функции + открывающая круглая скобка + аргументы функции + закрывающая круглая скобка + операторные скобки {}
.main
программа завершается.main
. В примерах функция main
будет опущена для краткости.Переменные
var number int
int
. int
– тип переменной, которая хранит целое число. int
это 0, для float
– 0.0, для string
– «» (пустая строка), для bool
– false
.
number := 0 // эквивалентно var number = 0
=
:
var number, secondNumber int number = 15 secondNumber = number println(number) // Вывод: 15 println(secondNumber) // Вывод: 15
Управляющие конструкции
Следование
Условие
if
:
number := 15 secondNumber := 10 if number < secondNumber { println("первое число меньше второго") }
bool
.else
:
if number < secondNumber { println("первое число меньше второго") } else if number > secondNumber { println("второе число меньше первого") } else { println("числа равны") }
if
имеется конструкция switch
, работающая подобным образом:
switch 200 { case 100: println("число равно 100") case 200: println("число равно 200") // будет выведено это }
switch
получает значение 200 и ищет case
, в котором значения совпадают и выполняет только определенный участок кода.switch
также может использоваться как замена if
. Перепишем пример с
if
:
switch { case number < secondNumber: println("первое число меньше второго") case number > secondNumber: println("второе число меньше первого") default: println("числа равны") }
else
здесь играет слово default
. Оно также будет выполнено при невыполнении ни одного из условий.Циклы
for
, который может принимать разные формы:
for i := 1; i <= 10; i++ { println(i) }
for
вместе с точкой запятой:
for number < secondNumber { number = number + 1 }
for { println("Бесконечный цикл") }
break
:
i := 0 for { println("Бесконечный цикл") if i == 10 { break } i++ }
break
цикл будет завершен. continue
. Оно отличается от break
тем, что не сразу завершает цикл, а лишь пропускает оставшийся код цикла и начинает новое повторение.Массивы
var numbers [3]int
numbers[0] = 10 numbers[1] = 11 numbers[2] = 12
var numbers [3]int = [3]int{10, 11, 12}
numbers := [3]int{10, 11, 12}
Слайсы
numbers := [3]int{10, 11, 12} // массив numbers := []int{10, 11, 12} // слайс
append
:
numbers = append(numbers, 13) // добавление одного элемента numbers = append(numbers, 14, 15) // добавление двух элементов
Функции
println
для вывода значений на экран. main
:
func НазваниеФункции(первыйАргумент int, второйАргумент int) (возвращаемоеЗначение int) { // тело функции return 0 }
func
указывается название функции. Далее в круглых скобках аргументы, которые принимает функция. После закрывающей круглой скобки указывается одно или несколько возвращаемых значений функции, а затем следует код функции в операторных скобках.Sum
складывает два числа и возвращает результат:
func Sum(a, b int) int { return a + b }
SumAndDivide
возвращает как сумму, так и частное чисел:
func SumAndDivide(a, b int) (int, int) { return a + b, a / b }
func main() { sum := Sum(1, 2) println(sum) // 3 sum, division := SumAndDivide(4, 2) println(sum) // 6 println(division) // 2 }
Пакеты
.go
и кодом, который можно импортировать и переиспользовать. Стандартная библиотека языка Go содержит много часто используемых и важных пакетов. Например, в пакете strings
содержатся функции для работы со строками.strings
:
package main import "strings" func main() { upper := strings.ToUpper("заглавные буквы") println(upper) // Output: ЗАГЛАВНЫЕ БУКВЫ }
import
нужно для импорта используемых пакетов. Чтобы использовать функции из пакета strings
, нужно:Первое серверное приложение “Hello Web”
http
содержится все необходимое для создания веб-сервера.
package main import ( "log" "net/http" ) func HelloWeb(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello Web!")) } func main() { http.HandleFunc("/", HelloWeb) err := http.ListenAndServe("localhost:9999", nil) if err != nil { log.Println("listen and serve:", err) } }
http.HandleFunc
устанавливает функцию HelloWeb
, по пути /
, а http.ListenAndServe
запускает сервер по указанному адресу. HelloWeb
. Функция принимает два аргумента – сам запрос и переменную, позволяющую ответить на запрос. В строке w.Write([]byte(“Hello Web”))
мы отвечаем на запрос обычной строкой.Литература
Онлайн ресурсы
Go в “Библиотеке Программиста”
- 7 views
- 0 Comment