На этом шаге рассмотрим функции пакета strconv для работы со строками в Go.
Пакет strconv содержит множество функций для преобразования строк в значения других типов и значений других типов в строки.
Функции, имеющиеся в пакете, перечислены в таблице 1, в которой параметр bs – значение типа []byte, base – число, определяющее основание системы счисления (от 2 до 36), bits – требуемый размер результата в битах (8, 16, 32, 64 или 0 – для результата типа int; 32 или 64 – для результата типа float64), и s – строка.
Функция | Описание/результат |
---|---|
strconv.AppendBool(bs, b) | В конец bs добавляется строка "true" или "false" в зависимости от значения b |
strconv.AppendFloat(bs, f, fmt, prec, bits) | В конец bs добавляется строка с представлением вещественного числа f; назначение других параметров см. в описании функции strconv.FormatFloat() |
strconv.AppendInt(bs, i, base) | В конец bs добавляется строка с представлением целого числа i типа int64 в системе счисления по основанию base |
strconv.AppendQuote(bs, s) | В конец bs добавляется строка s, обработанная функцией strconv.Quote() |
strconv.AppendQuoteRune(bs, char) | В конец bs добавляется строка, полученная в результате обработки символа char функцией strconv.QuoteRune() |
strconv.AppendQuoteRuneToASCII(bs, char) | В конец bs добавляется строка, полученная в результате обработки символа char функцией strconv.QuoteRuneToASCII() |
strconv.AppendQuoteToASCII(bs, s) | В конец bs добавляется строка, полученная в результате обработки строки s функцией strconv.QuoteToASCII() |
strconv.AppendUInt(bs, u, base) | В конец bs добавляется строка с представлением целого числа u типа uint64 в системе счисления по основанию base |
strconv.Atoi(s) | Строка s, преобразованная в значение типа int, и значение ошибки или nil |
strconv.CanBackquote(s) | true, если строка s может быть представлена в виде строки в обратных апострофах |
strconv.FormatBool(tf) | Строка "true" или "false" в зависимости от значения tf типа bool |
strconv.FormatFloat(f, fmt, prec, bits) | Значение f типа float64 в виде строки. Параметр fmt – значение типа byte, представляющий спецификатор формата, 'b' – для %b, 'e' – для %e, и т. д. Параметр prec определяет количество цифр после десятичной точки, когда в параметре формата fmt указывается 'e', 'E' или 'f'; или общее число цифр для формата 'g' или 'G'; чтобы обеспечить вывод минимально возможного количества цифр без потери точности (как это делает функция strconv.ParseFloat()), в параметре prec можно передать значение –1. Параметр bits влияет на точность округления, и в нем обычно передается значение 64 |
strconv.FormatInt(i, base) | Строка с представлением целого числа i типа int64 в системе счисления по основанию base |
strconv.FormatUInt(u, base) | Строка с представлением целого числа u типа uint64 в системе счисления по основанию base |
strconv.IsPrint(c) | true, если параметр c типа rune является печатаемым символом |
strconv.Itoa(i) | Строка с представлением целого числа i в десятичной системе счисления |
strconv.ParseBool(s) | true и nil, если s является строкой "1", "t", "T", "true", "True" или "TRUE"; false и nil, если s является строкой "0", "f", "F", "false", "False" или "FALSE"; false и значение ошибки в противном случае |
strconv.ParseFloat(s, bits) | Значение типа float64 и nil, если строка s содержит допустимое представление вещественного числа, или 0 и значение ошибки; параметр bits должен иметь значение 64, однако допускается передавать в нем значение 32, если требуется получить значение типа float32 |
strconv.ParseInt(s, base, bits) | Значение типа int64 и nil, если строка s содержит допустимое представление целого числа, или 0 и значение ошибки; значение 0 в параметре base означает, что система счисления будет определена автоматически по содержимому строки s (наличие в начале строки последовательности символов "0x" или "0X" означает систему счисления по основанию 16, если строка начинается с символа "0", это означает систему счисления по основанию 8; в остальных случаях используется десятичная система счисления), иначе будет использоваться указанная система счисления (по основанию от 2 до 36); параметр bits должен содержать значение 0, если в результате преобразования должно быть получено значение типа int, или количество бит, соответствующее требуемому целочисленному типу со знаком (например, 16 – для типа int16) |
strconv.ParseUint(s, base, bits) | Значение типа uint64 и nil, или 0 и значение ошибки, аналогично функции strconv.ParseInt(), только в результате возвращается беззнаковое целое |
strconv.Quote(s) | Значение типа string, содержащее представление строки s в кавычках с учетом синтаксиса языка Go |
strconv.QuoteRune(char) | Значение типа string, содержащее представление в апострофах кодового пункта параметра char типа rune, с учетом синтаксиса языка Go |
strconv.QuoteRuneToASCII(char) | Значение типа string, содержащее представление в апострофах кодового пункта параметра char типа rune, с учетом синтаксиса языка Go; не ASCII-символы представляются в виде экранированных последовательностей |
strconv.QuoteToASCII(s) | Значение типа string, в кавычках с учетом синтаксиса языка Go; для представления не ASCII-символов используются экранированные последовательности |
strconv.Unquote(s) | Значение типа string, содержащее представление строки s, заключенной в апострофы, кавычки или обратные апострофы, и значение ошибки |
strconv.UnquoteChar(s,b) | Значение типа rune (первый символ), значение типа bool (если для представления первого символа в кодировке UTF-8 требуется более одного байта), значение типа string (остальная часть строки) и значение ошибки; если в параметре b передается символ апострофа или кавычки, соответствующие символы в строке результата будут экранированы |
На следующем шаге рассмотрим примеры использования функций пакета strconv.