Глаголы Printf
Точно форматируйте значения
«Глаголы Printf» — бесплатный урок Go Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.
Что такое глагол форматирования?
fmt.Printf форматирует значения с помощью строки формата. Внутри неё знак процента с буквой образуют глагол, который указывает, как вывести следующий аргумент.
Пример: %d для целых чисел, %s для строк.
package main
import "fmt"
func main() {
fmt.Printf("%s is %d years old\n", "Ada", 36)
}Не забывайте о переводе строки
В отличие от Println, Printf не добавляет перевод строки. Добавьте \n самостоятельно, если он нужен.
package main
import "fmt"
func main() {
fmt.Printf("line one\n")
fmt.Printf("line two\n")
}Универсальный глагол %v
%v выводит значение в формате по умолчанию и работает почти с любым типом. %+v также добавляет имена полей структуры.
package main
import "fmt"
type Point struct{ X, Y int }
func main() {
p := Point{1, 2}
fmt.Printf("%v\n", p)
fmt.Printf("%+v\n", p)
}Глагол синтаксиса Go %#v
%#v выводит значение так, как Вы записали бы его в исходном коде Go. Это особенно удобно для отладки.
package main
import "fmt"
type Point struct{ X, Y int }
func main() {
p := Point{1, 2}
fmt.Printf("%#v\n", p)
}Глагол типа %T
%T выводит тип значения, что полезно, когда Вы не уверены, с чем именно работаете.
package main
import "fmt"
func main() {
fmt.Printf("%T\n", 42)
fmt.Printf("%T\n", "hi")
fmt.Printf("%T\n", 3.14)
}Системы счисления для целых чисел
Для целых чисел предусмотрено несколько глаголов:
%d— десятичный формат,%b— двоичный,%o— восьмеричный,%x— шестнадцатеричный.
package main
import "fmt"
func main() {
n := 255
fmt.Printf("%d %b %o %x\n", n, n, n, n)
}Формат чисел с плавающей точкой
Для чисел с плавающей точкой используется %f для десятичного формата и %e для экспоненциальной записи. %g выбирает наиболее короткую подходящую форму.
package main
import "fmt"
func main() {
x := 3.14159
fmt.Printf("%f\n", x)
fmt.Printf("%e\n", x)
fmt.Printf("%g\n", x)
}Точность для чисел с плавающей точкой
Добавьте .N, чтобы управлять количеством знаков после десятичного разделителя. %.2f показывает ровно две цифры после него — это идеально для денежных сумм.
package main
import "fmt"
func main() {
price := 9.5
fmt.Printf("$%.2f\n", price)
}Ширина и выравнивание
Число перед глаголом задаёт минимальную ширину. По умолчанию значения выравниваются по правому краю; знак минуса выравнивает их по левому.
package main
import "fmt"
func main() {
fmt.Printf("[%5d]\n", 42)
fmt.Printf("[%-5d]\n", 42)
}Заполнение нулями
Начальный 0 в ширине дополняет числа нулями — это удобно для кодов фиксированной длины или отметок времени.
package main
import "fmt"
func main() {
fmt.Printf("%04d\n", 7)
fmt.Printf("%02d:%02d\n", 9, 5)
}Логические значения, кавычки и проценты
Другие глаголы: %t для логических значений, %q для строки в двойных кавычках и %% для буквального знака процента.
package main
import "fmt"
func main() {
fmt.Printf("%t\n", true)
fmt.Printf("%q\n", "hi")
fmt.Printf("100%%\n")
}Быстрая проверка
Какой глагол форматирует число с плавающей точкой с двумя знаками после десятичного разделителя?
Итоги: глаголы Printf
Теперь Вы умеете точно форматировать значения:
- Общие:
%v,%+v,%#v,%T. - Числа:
%d,%b,%x,%f,%.2f. - Разметка: ширина,
-для выравнивания по левому краю,0для заполнения нулями.
package main
import "fmt"
func main() {
fmt.Printf("%-8s %6.2f\n", "Total:", 12.5)
}Часто задаваемые вопросы
Урок «Глаголы Printf» бесплатный?
Да — полный текст урока «Глаголы Printf» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.
Чему я научусь в уроке «Глаголы Printf»?
Точно форматируйте значения Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Go Academy?
Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Глаголы Printf»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Go Academy?
Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Глаголы Printf
- Sprintf и Fprintf
- Интерфейс Stringer
- Сканирование ввода