Пакет strconv реализует преобразования в и из строковых представлений основных типов данных.
Числовые преобразования
Наиболее распространенные числовые преобразования - это Atoi (string в int) и Itoa (int в string).
i, err := strconv.Atoi("-42")
s := strconv.Itoa(-42)
Они предполагают десятичность и тип Go int.
ParseBool, ParseFloat, ParseInt и ParseUint преобразуют строки в значения:
b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)
i, err := strconv.ParseInt("-42", 10, 64)
u, err := strconv.ParseUint("42", 10, 64)
Функции parse возвращают самый широкий тип (float64, int64 и uint64), но если аргумент size указывает более узкую ширину, результат может быть преобразован в этот более узкий тип без потери данных:
s := "2147483647" // наибольшее int32
i64, err := strconv.ParseInt(s, 10, 32)
...
i := int32(i64)
FormatBool, FormatFloat, FormatInt и FormatUint преобразуют значения в строки:
s := strconv.FormatBool(true)
s := strconv.FormatFloat(3.1415, 'E', -1, 64)
s := strconv.FormatInt(-42, 16)
s := strconv.FormatUint(42, 16)
AppendBool, AppendFloat, AppendInt и AppendUint похожи, но добавляют отформатированное значение к целевому срезу.
Строковые преобразования
Quote и QuoteToASCII конвертируют строки в экранированные строковые литералы Go. Последний гарантирует, что результатом является строка ASCII, экранируя любой не-ASCII Unicode с \u:
q := strconv.Quote("Hello, 世界")
q := strconv.QuoteToASCII("Hello, 世界")
QuoteRune и QuoteRuneToASCII похожи, но принимают руны и возвращают экранированные литералы рун Go.
Unquote и UnquoteChar удаляют кавычки из строковых литералов и литералов рун.
Читайте также:
- Руны и кодировка символов в Golang
- Строка, байт, руна, символ в Golang
- Массивы, срезы и строки: механика работы append в Golang
Комментариев нет:
Отправить комментарий