При написании кода Go вы обнаружите, что форматирование строк очень полезно во многих ситуациях. Вы можете анализировать входные данные или создавать более сложные выходные данные, чем простая конкатенация. Возможно, вы работаете с типами, отличными от простых строк.

Форматирование строк в Go использует знакомый процесс и синтаксис функции printf, которые также используются в языках от Java до Haskell.

Go предоставляет различные методы форматирования строк в ФМТ упаковка. Вы можете использовать функции и глаголы для форматирования строк в зависимости от операции или входных данных, которые вы хотите отформатировать.

Форматирование строк в Go

Функции в пакете fmt аналогичны аналогам, например функция printf в bash или С. Go получил свои глаголы форматирования от C.

Ты используешь глаголы форматирования строки в качестве заполнителей для ваших значений переменных в содержащей строке. Затем вы можете передать эту строку форматирования такой функции, как Принтф, а также значения, соответствующие этим заполнителям.

instagram viewer

Вы не можете использовать глаголы форматирования строки с Распечатать а также Распечатать методы. Вы можете использовать их с такими методами, как Принтф а также Спринтф.

ФМТ Println("Это тест %v", 90)
ФМТ Printf("Это тест %v", 90)

В %v verb печатает любое значение в формате по умолчанию. В Распечатать метод не распознает глаголы и выводит любые аргументы, которые он получает. В Принтф а также Спринтф обе функции форматируют первый строковый аргумент, который вы им передаете.

Функции форматирования строк в пакете fmt

Форматирование строк в язык программирования Go требует, чтобы вы использовали функцию форматирования строки и глагол. Функция возвращает отформатированную строку, а глаголы являются заполнителями для входных данных строки.

В Принтф Метод форматирует ввод в соответствии со спецификатором формата и возвращает количество записанных байтов или ошибок.

ФМТ Printf("Это тест %v", 90)

Традиционно вам не придется беспокоиться об ошибках при использовании Принтф метод.

В Спринтф форматирует метод в соответствии с указанным форматом и возвращает результат в виде строки.

вар результат = ФМТ. Sprintf("Это тест %v", 90)

В Фпринтф метод форматирует строку и записывает ее в модуль записи (методы, реализующие ио. Писатель интерфейс)

// записываем данные в стандартный вывод
результат, ошибка = fmt. Fprintf (запись, "Это тест %v", 90)

В Фсканф метод сканирует из ридера и форматирует в соответствии с указанным форматом.

вар брать нить

// прочитать данные из заданной строки
чтениеСтрока := строки. NewReader("Это тест")

читать, ошибаться := fmt. Fscanf (читатель, "%v", &take)

В этом случае Фсканф декодирует строку из считывателя в брать переменная, и читать переменная содержит результат форматирования.

Глаголы форматирования строк

Go предоставляет множество глаголов форматирования, которые можно использовать вместе с функциями форматирования строк.

Существуют общие глаголы форматирования строк, такие как %v глагол в примерах функций форматирования строк. Вы можете использовать общие глаголы форматирования строк для форматирования любого типа данных.

Вы можете использовать %#v глагол для вывода любого значения, %+v для структур, глагол для типа любого значения, и %% глагол без значений.

тип Любые структура { 
имя нить
возраст инт
isLoggedIn логический
}

вар экземпляр = любой {
имя: "Джон Доу",
возраст: 34,
вошёл в систему: истинный,
}

вар результат = ФМТ. Sprintf("Это структура пример форматирования %+v", instance)
ФМТ Println (результат)

В результат переменная содержит отформатированную строку созданной структуры. Если распечатать, то должно получиться примерно так:

Это пример форматирования структуры {name: John Doe age: 34 isLoggedIn:истинный}

Существуют глаголы для форматирования определенных собственных типов данных Go, включая каналы и указатели.

Глагол Функциональность
%t булевы значения.
%d int, int8 и т. д.
%d, %#x, если напечатано с %#v uint, uint8 и т. д.
%грамм float32, комплекс64 и т. д.
%s нить.
%п Чан.
указатель.

Вы должны убедиться, что не делаете ошибок с глаголами, поскольку они чувствительны к регистру, например Чан а также указатель глаголы.

Форматирование целых чисел и чисел с плавающей запятой

Существуют глаголы форматирования строк для форматирования целых чисел в разные базы. Вы можете использовать любой из этих глаголов для форматирования целых чисел.

Глагол Функциональность
%b основание 2
символ, представленный соответствующей кодовой точкой Unicode.
%d основание 10.
основание 8.
%O основание 8 с префиксом 0o.
%q символьный литерал в одинарных кавычках безопасно экранирован синтаксисом Go.
%Икс основание 16, со строчными буквами для a-f.
%ИКС основание 16, с прописными буквами для AF.
%U Формат Юникода: U+1234; то же, что и "U+%04X".

Например, вы можете отформатировать целое число, используя %d глагол:

вар результат = ФМТ. Sprintf("Это пример целочисленного форматирования %d", 90)
ФМТ Println (результат)

Это глаголы для форматирования чисел с плавающей запятой.

Глагол Функциональность
%b бездесятичная экспоненциальная запись с показателем степени двойки, наподобие strconv. FormatFloat с форматом «b», например. -123456п-78
научное обозначение, т.е. -1,234456e+78
%E десятичная точка, но без степени, например, 123,456
%f десятичная точка, но без степени, например, 123,456
%F синоним %f.
%грамм %e для больших показателей, %f в противном случае. Точность ниже.
%ГРАММ %E для больших показателей, %F в ​​противном случае
%Икс шестнадцатеричная запись (с десятичной степенью двух степеней), например, -0x1.23abcp+20.
%ИКС шестнадцатеричная запись в верхнем регистре, например. -0X1.23ABCP+20.

Вот пример форматирования десятичной точки без экспоненты с %f глагол.

вар результат = ФМТ. Sprintf("Это пример форматирования с плавающей запятой %f", 432.9503)
ФМТ Println (результат)

Вы всегда можете использовать общие глаголы, если вы не уверены в типе.

Форматирование строк и байтов

Строки и срезы байтов в Go очень похожи. Это флаги форматирования строк и байтов.

Глагол Функциональность
%s неинтерпретированные байты строки или среза
%q строка в двойных кавычках, безопасно экранированная синтаксисом Go
%Икс основание 16, нижний регистр, два символа на байт
%ИКС основание 16, верхний регистр, два символа на байт

Вот пример форматирования строки с %s глагол.

вар оценка = "пример"
вар результат = ФМТ. Sprintf("Это нить пример форматирования %s", оценка)
ФМТ Println (результат)

Пакет fmt необходим для программирования на Python

В ФМТ package содержит большую часть функций, которые вам понадобятся для форматирования строк. Go также предоставляет струны пакет для работы со строками и журнал пакет, который может форматировать строки для ведения журнала.

В ФМТ пакет имеет функции, реализующие ио. Писатель а также ио. Читатель интерфейсы. Вы найдете его полезным для многих случаев использования, таких как создание веб-приложений и приложений командной строки.