Преобразование строк в целые числа в Golang: методы и примеры

Преобразование строки в целое число — распространенная задача в программировании. В Go (Golang) существует несколько методов такого преобразования. В этой статье мы рассмотрим различные подходы с примерами кода, которые помогут вам легко преобразовать строки в целые числа в Golang.

Метод 1: использование функции strconv.Atoi()
Пакет strconv в Go предоставляет простой способ преобразования строки в целое число с помощью функции Atoi(). Вот пример:

package main
import (
    "fmt"
    "strconv"
)
func main() {
    str := "123"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Converted integer:", num)
}

Метод 2: использование функции strconv.ParseInt()
Если вам нужен больший контроль над процессом преобразования, вы можете использовать функцию strconv.ParseInt(). Эта функция позволяет указать базу и разрядность. Вот пример:

package main
import (
    "fmt"
    "strconv"
)
func main() {
    str := "123"
    num, err := strconv.ParseInt(str, 10, 64)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Converted integer:", num)
}

Метод 3: использование альтернативы strconv.Atoi() — пользовательское преобразование
Если вы предпочитаете более индивидуальный подход, вы можете реализовать свою собственную функцию преобразования. Вот пример:

package main
import (
    "fmt"
    "strings"
)
func atoi(s string) (int, error) {
    var num int
    var sign int = 1
    s = strings.TrimSpace(s)
    if s == "" {
        return 0, fmt.Errorf("empty string")
    }
    if s[0] == '+' {
        s = s[1:]
    } else if s[0] == '-' {
        sign = -1
        s = s[1:]
    }
    for _, ch := range s {
        if ch < '0' || ch > '9' {
            return 0, fmt.Errorf("invalid character: '%c'", ch)
        }
        num = num*10 + int(ch-'0')
    }
    return num * sign, nil
}
func main() {
    str := "123"
    num, err := atoi(str)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Converted integer:", num)
}

Преобразование строк в целые числа в Golang — фундаментальная задача, и пакет strconv предоставляет удобные функции, такие как Atoi() и ParseInt(), для упрощения процесса преобразования. Кроме того, вы можете создать свою собственную функцию преобразования, если вам требуется более специализированный подход. Понимая эти методы и примеры, вы сможете уверенно выполнять преобразования строк в целые числа в своих программах Go.