Найти в Дзене

Golang с нуля: основы языка

Оглавление

(Статья 3 из цикла "Golang с нуля")

Теперь, когда Go установлен и вы написали свой первый проект, давайте разберёмся в его фундаментальных строительных блоках: переменных, типах данных, циклах и функциях. Это основа, без которой невозможно двигаться дальше.

🔹 Шаг 1: Переменные и константы

В Go переменные объявляются с помощью ключевого слова var, а константы — const. Go — статически типизированный язык, но часто умеет выводить тип переменной самостоятельно.

Объявление переменных:

package main

import "fmt"

func main() {

// Явное объявление типа

var age int = 30

var name string = "Алиса"

// Сокращённое объявление (Go сам определяет тип)

city := "Москва"

country := "Россия"

fmt.Println(name, "из", city, country, ". Ей", age, "лет.")

}

Константы:
Константы объявляются так же, как и переменные, но их значение не может быть изменено после инициализации.

package main

import "fmt"

func main() {

const PI = 3.14

const GOAL = "Become a Go developer"

fmt.Println("PI равен", PI)

// PI = 3.15 // Ошибка! Нельзя изменить константу

}

🔹 Шаг 2: Основные типы данных

Go имеет несколько встроенных типов данных:

  • Числа: int, int8, int16, int32, int64 (целые числа), float32, float64 (числа с плавающей точкой).
  • Логический тип: bool (принимает значения true или false).
  • Строки: string (последовательность символов).

3. Управляющие структуры

Go предлагает простые и понятные конструкции для управления потоком выполнения программы.

Циклы:
В Go есть только один тип цикла — for. Он очень универсален и может использоваться как обычный цикл, так и как аналог while.

package main

import "fmt"

func main() {

// Обычный for-цикл

for i := 0; i < 3; i++ {

fmt.Println("Итерация", i)

}

// Цикл как while

sum := 1

for sum < 10 {

sum += sum

}

fmt.Println("Сумма:", sum)

}

Условные операторы (if/else):
Синтаксис if в Go не требует скобок вокруг условия.

package main

import "fmt"

func main() {

age := 18

if age >= 18 {

fmt.Println("Вы совершеннолетний.")

} else {

fmt.Println("Вы несовершеннолетний.")

}

}

🔹 Шаг 4: Функции

Функции — это блоки кода, которые выполняют определённую задачу. В Go функция может возвращать несколько значений.

Объявление функции:

package main

import "fmt"

// Функция, которая принимает два числа и возвращает их сумму

func add(a int, b int) int {

return a + b

}

// Функция, которая возвращает несколько значений

func swap(a, b string) (string, string) {

return b, a

}

func main() {

result := add(5, 7)

fmt.Println("Сумма:", result)

first, second := "первый", "второй"

fmt.Println("Было:", first, second)

first, second = swap(first, second)

fmt.Println("Стало:", first, second)

}

💡 Вывод

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

Что дальше?
В следующей статье мы погрузимся в одну из самых мощных особенностей Go —
горутины и каналы. Подпишитесь, чтобы не пропустить!

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