(Статья 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 — горутины и каналы. Подпишитесь, чтобы не пропустить!
Попробуйте самостоятельно написать небольшую программу, используя то, что мы изучили сегодня. Поделитесь своими результатами в комментариях!