Перейти к содержанию

Базовый синтаксис Go

Здесь — минимум, чтобы написать осмысленную программу: типы, переменные, операторы, ввод и вывод. Дальше всё опирается на этот фундамент.

Что должен понять

  • Какие базовые типы есть в Go и как объявлять переменные.
  • Когда использовать var, а когда короткий :=.
  • Как читать ввод и печатать вывод через пакет fmt.
  • Что нет неявных конверсий — int в float64 нужно кастовать руками.
  • Что неиспользуемая переменная — это ошибка компиляции, не предупреждение.

Базовые типы

  • Числа: int, int64, float64.
  • Строки: string (UTF-8, неизменяемые).
  • Логические: bool (true / false).
  • Zero values: 0, "", false, nil.

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

package main

import "fmt"

func main() {
    var a int = 10        // явный тип
    var b = 20            // тип выводится: int
    c := 30               // короткий вид, только внутри функции

    const Pi = 3.14159    // константа

    fmt.Println(a, b, c, Pi)
}

Операторы и арифметика

x := 7
y := 2
fmt.Println(x + y)   // 9
fmt.Println(x - y)   // 5
fmt.Println(x * y)   // 14
fmt.Println(x / y)   // 3   (целочисленное деление)
fmt.Println(x % y)   // 1   (остаток)

// Сравнения дают bool
fmt.Println(x > y, x == y, x != y)

Деление целых чисел даёт целое. Чтобы получить дробь — сначала кастуй: float64(x) / float64(y).

Ввод и вывод

package main

import "fmt"

func main() {
    var name string
    fmt.Print("Как тебя зовут? ")
    fmt.Scan(&name)               // & — адрес переменной
    fmt.Printf("Привет, %s!\n", name)
}

Полезные глаголы fmt:

  • %d — целое, %f — дробное, %s — строка, %v — любое значение.
  • \n — перенос строки.

Типичные ошибки

  • Забыли & в fmt.Scan — программа не запишет в переменную.
  • Объявили переменную и не использовали — компилятор ругается. Удали или используй _ = x.
  • int / int для дробного результата. Каст обязателен.

Критерии приёмки модуля

  • Программа считывает имя и печатает приветствие.
  • Программа считает остаток от деления и выводит результат.
  • В коде нет неиспользуемых переменных и импортов.
  • go fmt ничего не меняет в файле перед коммитом.

Дальше: Условия.