Go за 30 минут: Быстрый старт для новичков

Установка Go

Для работы с Go необходимо скачать его с официального сайта. Выберите последнюю версию, подходящую для вашей операционной системы (Windows, Linux, macOS). После скачивания разархивируйте файл. Для написания кода вам понадобится текстовый редактор (например, Atom) и терминал (командная строка в Windows).

Первый шаг: «Hello, world!»

Создайте файл с расширением .go (например, project.go). В нём напишите следующий код:

package main

import "fmt"

func main() {
tfmt.Println("Hello, world!")
}

Этот код использует пакет main (для запуска из терминала), импортирует библиотеку fmt (для вывода на экран) и содержит функцию main(), которая выполняется при запуске программы. Для запуска кода в терминале введите команду go run project.go.

Документация

Go предоставляет удобный доступ к документации. Для получения информации о функции, например, fmt.Println, используйте команду go doc fmt Println в терминале.

Основы языка: Переменные, типы данных и операторы

Переменные объявляются с помощью ключевого слова var. Тип переменной можно указать явно или позволить Go определить его автоматически:

var age int = 12
var price float64 = 2.5
var message string = "Hello"
var isAdult bool = true

Вывод переменных на экран осуществляется с помощью fmt.Println(). Go поддерживает стандартные математические операции: сложение (+), вычитание (-), умножение (*), деление (/), остаток от деления (%). Константы объявляются с помощью ключевого слова const:

const pi = 3.14

Строки обрабатываются с помощью различных функций: len() (длина строки), конкатенация (+), escape-последовательности (например, \n для перехода на новую строку). Функция fmt.Printf позволяет форматировать вывод, например, указывать количество знаков после запятой для чисел с плавающей точкой:

fmt.Printf("%.2f\n", num) // Выведет число num с двумя знаками после запятой

Управление потоком выполнения

Go поддерживает операторы if, else if и else:

if age < 5 {
tfmt.Println("Вам пора в детский сад")
} else if age == 5 {
tfmt.Println("Идите в школу")
} else if age > 5 && age <= 18 {
tfmt.Println("Вам пора в школу")
} else {
tfmt.Println("Вам пора в университет")
}

Конструкция switch является аналогом условного оператора if-else. В Go в switch не требуется явное использование break:

switch x {
case 5:
tfmt.Println("Вам пять лет")
case 10:
tfmt.Println("Вам десять лет")
default:
tfmt.Println("Вам неизвестно сколько лет")
}

Циклы for могут использоваться в нескольких вариантах:

// Цикл с инкрементом
for i := 0; i <= 10; i++ {
tfmt.Println(i)
}

// Цикл по массиву/срезу
for i, v := range arr {
tfmt.Println(i, v)
}

Структуры данных

Массивы в Go имеют фиксированный размер:

var arr [3]int = [3]int{45, 97, 76}

Карты (Maps) — это структуры данных ключ-значение:

website := map[string]float64{
t"itproger.com": 0.8,
t"index.com":    0.99,
}

Функции и дополнительные возможности

Функции объявляются с помощью ключевого слова func. Функции могут принимать параметры и возвращать значения:

func sum(a, b int) int {
treturn a + b
}

Замыкания позволяют функциям «запоминать» переменные из окружающего контекста:

func makeMultiplier(x int) func(int) int {
    return func(y int) int {
        return x * y
    }
}

Ключевое слово defer позволяет отложить выполнение функции до завершения функции, в которой она вызвана. Указатели позволяют работать с адресами переменных, а не с их значениями. Структуры позволяют группировать данные разных типов:

type Cat struct {
tName      string
tAge       int
tHappiness float64
}

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

Что будем искать? Например,программа