Heim > Artikel > Backend-Entwicklung > So konvertieren Sie einen String in Golang in eine Ganzzahl
Konvertierungsmethode: 1. Verwenden Sie Atoi(), um den String-Typ Integer in den Int-Typ zu konvertieren. Die Syntax lautet „strconv.Atoi(str)“. 2. Verwenden Sie ParseInt(), um den String in einen Integer-Wert zu konvertieren positive und negative Vorzeichen, die Syntax „strconv.ParseInt(str,10,64)“ 3. Verwenden Sie ParseUnit(), um die Zeichenfolge in einen ganzzahligen Wert umzuwandeln, akzeptiert keine positiven und negativen Vorzeichen, die Syntax „strconv.ParseUint(“ str,10 ,64)“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Das strconv-Paket in der Go-Sprache implementiert die gegenseitige Konvertierung zwischen grundlegenden Datentypen und ihren Zeichenfolgendarstellungen.
Das strconv-Paket implementiert die Konvertierung grundlegender Datentypen und ihrer Zeichenfolgendarstellungen. Es umfasst hauptsächlich die folgenden häufig verwendeten Funktionen: Atoi(), Itia(), Parse-Serie, Format-Serie und Append-Serie.
Im Folgenden werden verschiedene Funktionen zum Konvertieren von Zeichenfolgen in Ganzzahlen vorgestellt. Die Funktion
Atoi()
Atoi()
wird verwendet, um eine Ganzzahl vom Typ String in den Typ int zu konvertieren. Die Funktionssignatur lautet wie folgt.
func Atoi(s string) (i int, err error)
Wenn der eingehende String-Parameter nicht in den Typ int konvertiert werden kann, wird ein Fehler zurückgegeben.
package main import "fmt" import "strconv" func main() { s1 := "100" i, err := strconv.Atoi(s1) if err != nil { fmt.Println("can't convert to int") } else { fmt.Printf("type:%T value:%#v\n", i, i) //type:int value:100 } }
Parse-Serienfunktionen
Parse-Klassenfunktionen werden verwendet, um Zeichenfolgen in Werte eines bestimmten Typs umzuwandeln: ParseBool(), ParseFloat(), ParseInt(), ParseUint(). Unter anderem werden ParseInt() und ParseUnit() zum Konvertieren von Zeichenfolgen in Ganzzahlen verwendet.
ParseInt()
ParseInt() ist eine Funktion, die eine Zeichenfolge in eine Zahl umwandelt.
func ParseInt(s string, base int, bitSize int) (i int64, err error)
Gibt den durch die Zeichenfolge dargestellten ganzzahligen Wert zurück und akzeptiert positive und negative Vorzeichen.
base gibt die Basis an (2 bis 36), sie wird anhand des Präfixes der Zeichenfolge beurteilt, „0“ ist oktal, andernfalls ist sie dezimal
bitSize gibt den Ganzzahltyp an, dem das Ergebnis ohne Überlauf zugewiesen werden muss. 0, 8, 16, 32 und 64 repräsentieren int, int8, int16, int32 und int64.func ParseUint(s string, base int, bitSize int) (n uint64, err error)ParseUint ähnelt ParseInt, akzeptiert jedoch keine Vorzeichen und wird für vorzeichenlose Ganzzahlen verwendet.
Beispiel:
package main import "fmt" import "strconv" func main() { i, err1 := strconv.ParseInt("-2", 10, 64) u, err2 := strconv.ParseUint("2", 10, 64) if err1 != nil { fmt.Println("can't convert to int") } else { fmt.Printf("type:%T value:%#v\n", i, i) //type:int64 value:2 } if err2 != nil { fmt.Println("can't convert to int") } else { fmt.Printf("type:%T value:%#v\n", u, u) //type:uint64 value:0x2 } }
Die Funktionen ParseInt() und ParseUnit() haben beide zwei Rückgabewerte. Der erste Rückgabewert ist der konvertierte Wert und der zweite Rückgabewert ist die Fehlermeldung des Konvertierungsfehlers.
Erweiterte Kenntnisse: Integer-Typen in goDie Go-Sprache bietet sowohl vorzeichenbehaftete als auch vorzeichenlose Integer-Typen, einschließlich int8, int16, int32 und int64, entsprechend vorzeichenbehafteten Integer-Typen von 8. 16-, 32- und 64-Bit-Größen (Binärbit), entsprechend den vier vorzeichenlosen Ganzzahltypen uint8, uint16, uint32 und uint64.
Darüber hinaus gibt es zwei Ganzzahltypen, int und uint, die jeweils der Wortlänge (Maschinenwortgröße) einer bestimmten CPU-Plattform entsprechen. Int stellt eine vorzeichenbehaftete Ganzzahl dar, die am häufigsten verwendet wird, und uint stellt eine dar Ganzzahl ohne Vorzeichen. In der tatsächlichen Entwicklung variiert die Ganzzahlgröße, die int und uint darstellen kann, aufgrund von Unterschieden bei Compilern und Computerhardware zwischen 32 Bit und 64 Bit. In den meisten Fällen benötigen wir nur einen Integer-Typ, der für Schleifenzähler (Variablen in for-Schleifen, die die Anzahl der Schleifen steuern), Indizes in Arrays und Slices und jeden allgemeinen Integer-Operator, normalerweise int, verwendet werden kann Der Typ weist auch die schnellste Verarbeitungsgeschwindigkeit auf. Der zur Darstellung von Unicode-Zeichen verwendete Rune-Typ entspricht dem Typ int32 und wird normalerweise zur Darstellung eines Unicode-Codepunkts verwendet. Die beiden Namen können austauschbar verwendet werden. Ebenso sind Byte und Uint8 gleichwertige Typen. Der Byte-Typ wird im Allgemeinen verwendet, um hervorzuheben, dass es sich bei dem Wert um primitive Daten und nicht um eine kleine Ganzzahl handelt. Schließlich gibt es einen vorzeichenlosen Ganzzahltyp uintptr, der keine bestimmte Bitgröße angibt, aber groß genug ist, um Zeiger aufzunehmen. Der Typ uintptr wird nur in der Low-Level-Programmierung benötigt, insbesondere wenn die Go-Sprache mit Funktionsbibliotheken der C-Sprache oder Betriebssystemschnittstellen interagiert. Obwohl die Größen von int, uint und uintptr in einigen bestimmten Betriebsumgebungen gleich sein können, handelt es sich dennoch um unterschiedliche Typen, z. B. int und int32. Wenn eine Konvertierung erforderlich ist, kann die Größe des int-Typs jedoch auch 32 Bit betragen Das int Der Typ muss explizit konvertiert werden, wenn er als int32-Typ verwendet wird und umgekehrt. Vorzeichenbehaftete Ganzzahlen in der Go-Sprache werden in Zweierkomplementform dargestellt, d (n-1)-1. Alle Bits einer vorzeichenlosen Ganzzahl werden zur Darstellung nicht negativer Zahlen mit Werten im Bereich von 0 bis 2n-1 verwendet. Beispielsweise reicht der Ganzzahltyp int8 von -128 bis 127, während der Ganzzahltyp uint8 von 0 bis 255 reicht.【Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht】
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen String in Golang in eine Ganzzahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!