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

₊⊹

ВЫВОД И ФОРМАТИРОВАНИЕ

Пакет fmt — главный инструмент вывода в Go

Go Новичок

[ ОСНОВНЫЕ ФУНКЦИИ ]

Пакет fmt предоставляет три основные функции вывода. Они отличаются тем, как обрабатывают перевод строки и форматирование.

GO
package main

import "fmt"

func main() {
    fmt.Print("Без переноса строки")      // курсор остаётся на той же строке
    fmt.Println("С переносом строки")    // добавляет \n в конце
    fmt.Printf("Привет, %s!\n", "Gopher") // форматированный вывод
}

[ ФОРМАТНЫЕ ГЛАГОЛЫ ]

fmt.Printf использует форматные глаголы — специальные коды, которые заменяются значениями переменных. Каждый глагол начинается с символа %.

₊⊹
Основные форматные глаголы:
%d — целое число (decimal)
%f — число с точкой (%.2f — два знака после запятой)
%s — строка
%v — любое значение (универсальный глагол)
%T — тип переменной
%b — двоичное представление числа
%t — булево значение (true/false)
GO
name  := "Gopher"
score := 1500
pi    := 3.14159

fmt.Printf("Игрок: %s\n", name)
fmt.Printf("Очки: %d\n", score)
fmt.Printf("Пи: %.2f\n", pi)        // 3.14
fmt.Printf("Тип: %T\n", score)      // int
fmt.Printf("Двоичный: %b\n", 42)    // 101010

[ fmt.Sprintf — СТРОКА БЕЗ ВЫВОДА ]

fmt.Sprintf работает как fmt.Printf, но вместо вывода на экран возвращает готовую строку. Полезно, когда нужно сформировать строку для дальнейшего использования.

GO
hero := "Марк"
hp   := 80

msg := fmt.Sprintf("Игрок %s — здоровье: %d%%", hero, hp)
fmt.Println(msg)  // Игрок Марк — здоровье: 80%
₊⊹
%% — буквальный знак процента
Чтобы вывести символ %, нужно написать %%. Одинарный % будет воспринят как начало форматного глагола.

[ ВВОД ДАННЫХ — fmt.Scan ]

Для чтения данных от пользователя используется fmt.Scan. Она записывает введённое значение в переменную, адрес которой ты передаёшь через оператор &.

GO
package main

import "fmt"

func main() {
    var name string
    fmt.Print("Введи имя: ")
    fmt.Scan(&name)
    fmt.Printf("Привет, %s!\n", name)
}
₊⊹
& — это указатель на переменную
fmt.Scan нужен адрес переменной, чтобы записать в неё значение. Символ & перед именем переменной возвращает её адрес в памяти — это один из фундаментальных механизмов Go.

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

₊⊹ ЗАДАНИЕ

Создай переменные для игрового персонажа: имя, уровень, здоровье.
Выведи красивую карточку персонажа с помощью fmt.Printf:
Имя: Марк | Уровень: 5 | HP: 100/100

Используй форматные глаголы %s и %d.

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

import "fmt"

func main() {
    name   := "Марк"
    level  := 5
    hp     := 100
    maxHp  := 100

    fmt.Printf("Имя: %s | Уровень: %d | HP: %d/%d\n",
        name, level, hp, maxHp)
}
◄ ПЕРЕМЕННЫЕ И ТИПЫ УСЛОВИЯ ►