Konvertieren von String in Int64 in Go

Jay Singh 23 August 2022
Konvertieren von String in Int64 in Go

Ein int wird im Allgemeinen für einen Index, eine Länge oder eine Kapazität verwendet. Der int-Typ ist immer groß genug, um die maximale Länge eines Arrays zu verarbeiten.

Die Datentypen int8, int16, int32 und int64 (sowie ihre unsignierten Cousins) sind die besten. Wenn Speicher kein Problem ist, ist ein int64 die häufigste Wahl.

In diesem Beitrag konvertieren wir einen String in ein int64.

String in Int64 konvertieren mit Parselnt() in Go

strconv.ParseInt() ist eine eingebaute Funktion in Go, die einen dezimalen String (Basis 10) parst und prüft, ob er in ein int64 passt. Die Implementierung bestimmt die Größe eines int; es können 32 oder 64 Bit sein, weshalb das Umschalten von int auf int64 keinen Datenverlust verursacht.

In diesem Beispiel wird strconv.ParseInt() verwendet, um eine Dezimalzeichenfolge (Basis 10) in eine 64-Bit-Ganzzahl mit Vorzeichen zu konvertieren und zu bestätigen, dass sie passt.

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "10101101"
    n, err := strconv.ParseInt(str, 10, 64)
    if err == nil {
        fmt.Printf("%d is type %T", n, n)
    }
}

Ausgabe:

10101101 is type int64

Zudem übersetzt ParseInt einen String und gibt den passenden Wert in der angegebenen Basis (0, 2 bis 36) und Bitgrösse (0 bis 64) zurück. Diese Methode nimmt einen Zeichenfolgenparameter und konvertiert ihn mithilfe eines Basisparameters in einen Int-Typ.

Es gibt standardmäßig einen Int64-Wert zurück.

package main

import (
    "fmt"
    "reflect"
    "strconv"
)

func main() {
    strVar := "110"

    intVar, err := strconv.ParseInt(strVar, 0, 8)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 16)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 32)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 64)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))
}

Ausgabe:

110 <nil> int64
110 <nil> int64
110 <nil> int64
110 <nil> int64

Verwandter Artikel - Go String