Преобразование строк и целых чисел
Мы можем использовать функции из пакета strconv
для преобразования между строками и целыми числами:
package main
import (
"fmt"
"strconv"
)
func main() {
// Declare a string a and an integer b
a, b := "233", 223
// Use Atoi to convert a string to an integer
c, _ := strconv.Atoi(a)
// Use Sprintf and Itoa functions respectively
// to convert an integer to a string
d1 := fmt.Sprintf("%d", b)
d2 := strconv.Itoa(b)
fmt.Printf("The type of a: %T\n", a) // string
fmt.Printf("The type of b: %T\n", b) // int
fmt.Printf("The type of c: %T\n", c) // int
fmt.Printf("The type of d1: %T\n", d1) // string
fmt.Printf("The type of d2: %T\n", d2) // string
}
go run string.go
Ожидаемый вывод выглядит следующим образом:
The type of a: string
The type of b: int
The type of c: int
The type of d1: string
The type of d2: string
В программе мы используем функцию Sprintf()
из пакета fmt
, которая имеет следующий формат:
func Sprintf(format string, a...interface{}) string
format
- это строка с экранированными последовательностями, a
- это константа или переменная, которая предоставляет значения для экранированных последовательностей, а ...
означает, что может быть несколько переменных того же типа, что и a
. Строка после функции означает, что Sprintf
возвращает строку. Вот пример использования этой функции:
a = fmt.Sprintf("%d+%d=%d", 1, 2, 3)
fmt.Println(a) // 1+2=3
В этом фрагменте кода в format
передаются три целочисленные переменные 1, 2 и 3. Экранированный символ %d
для целых чисел в format
заменяется целочисленными значениями, и функция Sprintf
возвращает результат после замены, 1+2=3
.
Также обратите внимание, что при использовании strconv.Atoi()
для преобразования строки в целое число функция возвращает два значения: преобразованное целое число val
и код ошибки err
. Поскольку в Go, если вы объявляете переменную, вы должны ее использовать, мы можем использовать подчеркивание _
для игнорирования переменной err
.
Когда strconv.Atoi()
выполняет преобразование правильно, err
возвращает nil
. Когда при преобразовании возникает ошибка, err
возвращает сообщение об ошибке, а значение val
будет равно 0. Вы можете изменить значение строки a
и заменить подчеркивание обычной переменной, чтобы попробовать это самостоятельно. Это хорошая практика обработки ошибок, которая является важной частью программирования на Go.