Heim >Backend-Entwicklung >Golang >Golang-Typkonvertierung ok

Golang-Typkonvertierung ok

WBOY
WBOYOriginal
2023-05-10 12:22:08480Durchsuche

Go-Sprache (Golang) ist eine Open-Source-Programmiersprache, die von Sprachen wie C, Java und Python beeinflusst ist. Sie wurde von Google entwickelt, um effiziente und zuverlässige Software zu erstellen. Ein Programm ist eng mit der Sprache verbunden, in der es geschrieben ist. So wie die Sprache, die Emotionen und Gedanken ausdrückt, haben auch Programmiersprachen ihre eigenen einzigartigen Eigenschaften. Die Typkonvertierung ist ein sehr wichtiges Konzept in der Go-Sprache, da die Typkonvertierung in vielen Situationen angewendet wird. In diesem Artikel werden die relevanten Kenntnisse der Golang-Typkonvertierung vorgestellt.

1. Überblick über die Typkonvertierung

Typkonvertierung ist der Prozess der Konvertierung eines Werts eines Datentyps in einen Wert eines anderen Datentyps. In der Go-Sprache werden Datentypen in Basisdatentypen und zusammengesetzte Typen unterteilt. Zu den grundlegenden Datentypen gehören int, float, string, bool und andere Typen. Zu den zusammengesetzten Typen gehören Arrays, Slices, Wörterbücher, Strukturen, Schnittstellen und Funktionen. In der Go-Sprache können Werte zwischen verschiedenen Typen nicht direkt bearbeitet und verglichen werden. Daher ist eine Typkonvertierung von Werten zwischen verschiedenen Typen erforderlich. Golang unterstützt die Konvertierung von vorzeichenbehafteten Ganzzahlen, vorzeichenlosen Ganzzahlen, Gleitkommazahlen, Booleschen Zahlen, Zeichenfolgen und anderen Typen. Die Syntax für die Typkonvertierung lautet: T(x), wobei T den zu konvertierenden Typ und x den zu konvertierenden Wert darstellt.

2. Grundlegende Datentypkonvertierung

1. Ganzzahltypkonvertierung

In der Go-Sprache umfassen Ganzzahltypen vorzeichenbehaftete und vorzeichenlose Ganzzahlen Integer-Typen, die die Konvertierung unterstützen, sind int8, int16, int32, int64, uint8, uint16, uint32 und uint64. Unter diesen werden int8 und uint8 als Byte-Typen bezeichnet, int16 und uint16 werden als kurze Ganzzahltypen bezeichnet, int32 und uint32 werden als lange Ganzzahltypen bezeichnet und int64 und uint64 werden als lange Ganzzahltypen bezeichnet.

Bei der Konvertierung von Ganzzahltypen müssen Sie die folgenden zwei Punkte beachten:

  • Wenn der Wertebereich den Wertebereich des zu konvertierenden Typs überschreitet, Es kommt zu einem Überlauf, was dazu führt, dass das Ergebnis nicht genau ist. Beispielsweise führt die Konvertierung eines Werts, der größer als der int8-Bereich ist, in den Typ int8 zu ungenauen Werten im Bereich [-128, 127]. Überlaufprobleme bei Integer-Typen müssen vermieden werden.
  • Nur Konvertierungen desselben Typs oder von Typen mit niedriger Genauigkeit in Typen mit hoher Genauigkeit sind sicher. Beispielsweise ist die Konvertierung von int8 nach int16 sicher, die Konvertierung von int16 nach int8 jedoch unsicher, da bei der Konvertierung nach int8 möglicherweise einige Daten abgefangen werden, was zu ungenauen Ergebnissen führt.

Das Folgende sind einige Beispiele für die Konvertierung von Ganzzahltypen:

package main

import "fmt"

func main() {
    var a int32 = 100
    var b int64 = int64(a)   // int32转换成int64
    var c int8 = int8(a)     // int32转换成int8,可能溢出
    var d uint16 = uint16(a) // int32转换成uint16
    fmt.Println(b, c, d)
}

Das Ausgabeergebnis ist:

100 100 100

2 Konvertierung# 🎜🎜#

In der Go-Sprache umfassen Gleitkommazahlentypen float32 und float64, und die Gleitkommazahltypen, die die Konvertierung unterstützen, können nur float32 und float64 sein. Bei der Konvertierung von Gleitkommazahlentypen sind zwei Punkte zu beachten:

    Wenn der Wertebereich bei der Konvertierung zu groß oder zu klein ist, kann es zu einem Überlauf kommen.
  • Kann nur von einem Typ mit niedriger Präzision in einen Typ mit hoher Präzision konvertiert werden. Die Konvertierung von einem Typ mit hoher Präzision in einen Typ mit niedriger Präzision kann zu Präzisionsverlusten führen.
Das Folgende ist ein Beispiel für die Konvertierung von Gleitkommatypen:

package main

import "fmt"

func main() {
    var a float32 = 3.1415926
    var b float64 = float64(a) // float32转换成float64
    fmt.Println(b)
}

Das Ausgabeergebnis ist:

3.1415927410125732

3 Konvertierung# 🎜🎜#

In der Go-Sprache hat der boolesche Typ nur zwei Werte: true und false, und die einzigen Typen, die die Konvertierung unterstützen, sind int- und string-Typen. Beim Konvertieren eines booleschen Werts in einen int wird true in 1 und false in 0 konvertiert. Beim Konvertieren eines booleschen Werts in einen String wird true in „true“ und false in „false“ konvertiert.

Das Folgende ist ein Beispiel für eine Boolesche Typkonvertierung:

package main

import "fmt"

func main() {
    var a bool = true
    var b int = int(a)     // true转换成int,值为1
    var c string = string(a) // true转换成字符串,值为"true"
    fmt.Println(b, c)
}

Das Ausgabeergebnis ist:

1 true

4. String-Typkonvertierung

# 🎜🎜#In der Go-Sprache ist eine Zeichenfolge ein (unveränderliches) Array aus Zeichenfolgen, und die einzigen Typen, die die Konvertierung unterstützen, sind primitive Typen. Die String-Konvertierung kann über das Paket strconv erreicht werden. Beim Konvertieren von Ganzzahlen in Strings können Sie die Funktion strconv.Itoa() verwenden, und beim Konvertieren von Gleitkommazahlen in Strings können Sie die Funktion strconv.FormatFloat() verwenden.

Das Folgende ist ein Beispiel für eine String-Typkonvertierung:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var a int = 100
    var b string = strconv.Itoa(a) // 将整数转换成字符串
    var c float64 = 3.1415926
    var d string = strconv.FormatFloat(c, 'f', 6, 64) // 将浮点数转换成字符串,保留6位小数
    fmt.Println(b, d)
}

Das Ausgabeergebnis ist:

100 3.141593

3. Zusammengesetzte Typkonvertierung

# 🎜🎜#1. Konvertierung des Array-Typs

In der Go-Sprache ist ein Array eine Sequenz fester Länge, die aus Elementen desselben Typs besteht. Werte können direkt zwischen Arrays zugewiesen werden, es ist jedoch zu beachten, dass Größe und Typ der Arrays gleich sein müssen, da sonst ein Kompilierungsfehler auftritt.

Das Folgende ist ein Beispiel für eine Array-Typkonvertierung:

package main

import "fmt"

func main() {
    var a [3]int = [3]int{1, 2, 3}
    var b [3]int = a // 数组之间可以直接赋值
    fmt.Println(b)
}

Das Ausgabeergebnis ist:

[1 2 3]

2. Slice-Typkonvertierung

#🎜 🎜#In der Go-Sprache ist ein Slice eine Struktur, die einen Zeiger auf ein Array enthält. Die Länge und Kapazität des Slice sind eine Sequenz variabler Länge. Werte können direkt zwischen Slices zugewiesen werden, allerdings ist zu beachten, dass die Elementtypen der Slices gleich sein müssen.

Das Folgende ist ein Beispiel für die Slice-Typkonvertierung:

package main

import "fmt"

func main() {
    a := []int{1, 2, 3, 4}
    b := a // 切片之间可以直接赋值
    fmt.Println(b)
}

Das Ausgabeergebnis ist:

[1 2 3 4]

3. Wörterbuchtypkonvertierung

#🎜 🎜#In der Go-Sprache ist ein Wörterbuch eine Sammlung von Schlüssel-Wert-Paaren. Werte können direkt zwischen Wörterbüchern zugewiesen werden, es ist jedoch zu beachten, dass die Schlüssel- und Werttypen der Wörterbücher gleich sein müssen.

Das Folgende ist ein Beispiel für die Konvertierung des Wörterbuchtyps:

package main

import "fmt"

func main() {
    a := map[string]int{"apple": 1, "banana": 2}
    b := a // 字典之间可以直接赋值
    fmt.Println(b)
}

Das Ausgabeergebnis ist:

map[apple:1 banana:2]

IV. Zusammenfassung

In der Go-Sprache ist die Typkonvertierung ein sehr wichtiges Konzept. Durch die Typkonvertierung können Werte zwischen verschiedenen Typen konvertiert werden, um den Anforderungen des Programms gerecht zu werden. Es ist jedoch zu beachten, dass bei der Typkonvertierung ein Überlauf des Datentypbereichs und Probleme mit Präzisionsverlusten vermieden werden müssen und gleichzeitig sichergestellt werden muss, dass der Typ nach der Konvertierung mit dem Typ vor der Konvertierung kompatibel ist. Die Typkonvertierung wird zwischen Basisdatentypen und zusammengesetzten Datentypen angewendet. Die Beherrschung der entsprechenden Kenntnisse der Typkonvertierung ist für die Golang-Programmierung sehr wichtig.

Das obige ist der detaillierte Inhalt vonGolang-Typkonvertierung ok. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Golang-Map-LöschelementNächster Artikel:Golang-Map-Löschelement