Как форматировать строки в Go

Как форматировать строки в Go

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





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





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





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

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

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



как скачать видео с сайта

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

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

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





  результат форматирования целых чисел

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

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

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





fmt.Printf("This is a test %v", 90) 

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

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

var result = fmt.Sprintf("This is a test %v", 90) 

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

// write data to standard output 
result, err = fmt.Fprintf(writer, "This is a test %v", 90)

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

var take string 

// read data from the given string
readString := strings.NewReader("This is a test")

read, err := fmt.Fscanf(reader, "%v", &take)

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

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

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

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

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

type any struct {  
name string
age int
isLoggedIn bool
}

var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}

var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)

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

This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}

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

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

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

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

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

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

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

var result = fmt.Sprintf("This is an integer formatting example %d", 90) 
fmt.Println(result)

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

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

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

var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

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

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

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

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

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

var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

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

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

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