Изучай программирование в играх

₊⊹

ПЕРЕМЕННЫЕ И ТИПЫ

Как хранить данные в Go

Go Новичок

[ ДВА СПОСОБА ОБЪЯВИТЬ ПЕРЕМЕННУЮ ]

В Go есть два способа создать переменную: явное объявление через var (с указанием типа) и краткое объявление через := (тип выводится автоматически).

GO
// Способ 1: var с типом
var age int = 17
var name string = "Марк"

// Способ 2: короткое объявление :=
score := 100
active := true

// var без значения — нулевое значение
var hp int       // hp = 0
var title string // title = ""
₊⊹
:= только внутри функций!
Краткое объявление := работает только внутри функций. На уровне пакета (вне функций) нужно использовать var.

[ ОСНОВНЫЕ ТИПЫ ДАННЫХ ]

Go — статически типизированный язык. Каждая переменная имеет строго определённый тип, который нельзя изменить после объявления.

int
Целое число (64-bit)
age := 25
float64
Число с точкой
pi := 3.14
string
Строка (двойные кавычки)
name := "Go"
bool
Истина / ложь
ok := true
byte
Один байт (= uint8)
b := byte('A')
rune
Символ Unicode (= int32)
r := 'Я'

[ НУЛЕВЫЕ ЗНАЧЕНИЯ ]

Важная особенность Go: переменные всегда инициализированы. Если ты объявляешь переменную без значения, Go автоматически присвоит ей нулевое значение для её типа.

GO
package main

import "fmt"

func main() {
    var i int
    var f float64
    var s string
    var b bool

    fmt.Println(i)  // 0
    fmt.Println(f)  // 0
    fmt.Println(s)  // "" (пустая строка)
    fmt.Println(b)  // false
}
₊⊹
Защита от undefined:
Нулевые значения — защита от ошибок типа undefined или null, распространённых в других языках. В Go переменная всегда имеет корректное значение.

[ КОНСТАНТЫ ]

Ключевое слово const объявляет неизменяемые значения. Особенность Go — специальный счётчик iota для создания перечислений: он автоматически увеличивается в каждой строке блока const.

GO
const Pi = 3.14159
const (
    StatusOK       = 200
    StatusNotFound = 404
)

// iota — автоматический счётчик
const (
    Sunday  = iota  // 0
    Monday           // 1
    Tuesday          // 2
)

[ ПОПРОБУЙ САМ ]

₊⊹ ЗАДАНИЕ

Объяви переменные для игрового персонажа:
— имя (string)
— здоровье (int)
— уровень (int)
— активен ли (bool)

Выведи их, а потом объяви такие же переменные без инициализации и выведи их нулевые значения.

[ ПОКАЗАТЬ РЕШЕНИЕ ]
package main

import "fmt"

func main() {
    name   := "Герой"
    hp     := 100
    level  := 1
    active := true

    fmt.Println(name, hp, level, active)

    // Нулевые значения
    var emptyName   string
    var emptyHp     int
    var emptyActive bool

    fmt.Println(emptyName, emptyHp, emptyActive)
    // "" 0 false
}
◄ СТРУКТУРА ПРОГРАММЫ ВЫВОД И ФОРМАТИРОВАНИЕ ►