Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie Daten in Golang

So konvertieren Sie Daten in Golang

王林
王林Original
2023-05-13 13:27:08463Durchsuche

Als effiziente und prägnante Programmiersprache ist Golang auch bei der Datenkonvertierung sehr flexibel. In diesem Artikel werden einige Methoden zur Datentypkonvertierung in Golang sowie einige Überlegungen zu praktischen Anwendungen erläutert.

1. Grundlegende Datentypkonvertierung

  1. String-Typ in Int-Typ konvertieren

Zeichenkonvertierung kann Atoi verwendet werden Funktion, die vom Paket strconv bereitgestellt wird. Wenn die Konvertierung fehlschlägt, wird 0 zurückgegeben.

Beispielcode:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("转换失败")
    } else {
        fmt.Println("转换结果为:", num)
    }
}
  1. Int-Typkonvertierung in String-Typ

Um Zahlen in Zeichen umzuwandeln, können Sie Verwenden Sie die bereitgestellte Strconv-Paket-Itoa-Funktion.

Beispielcode:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    num := 123
    str := strconv.Itoa(num)
    fmt.Println("转换结果为:", str)
}
  1. String-Typ konvertiert in []Byte-Typ

Zeichen in Byte-Slice, Du kann []byte() zum Umwandeln verwenden.

Beispielcode:

package main

import (
    "fmt"
)

func main() {
    str := "hello world"
    b := []byte(str)
    fmt.Println("转换结果为:", b)
}
  1. []Byte-Typ in String-Typ umgewandelt

Byte-Slice in Zeichen, Du kann string() zum Umwandeln verwenden.

Beispielcode:

package main

import (
    "fmt"
)

func main() {
    b := []byte{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}
    str := string(b)
    fmt.Println("转换结果为:", str)
}
  1. int64-Typkonvertierung in int-Typ

Wenn der Wert von int64 im ist int-Darstellungsbereich Innerhalb können Sie int() zum Umwandeln verwenden. Wenn es den Bereich überschreitet, ist eine Typzusicherung erforderlich.

Beispielcode:

package main

import (
    "fmt"
)

func main() {
    var i64 int64 = 1234567890
    var i int
    if i64 > int64(i) {
        fmt.Println("超过int类型取值范围")
    } else {
        i = int(i64)
        fmt.Println("转换结果为:", i)
    }
}

Hinweis: Achten Sie bei der Typkonvertierung unbedingt auf die Übereinstimmung des Datentypbereichs, da es sonst zu Datenkürzungen oder -überläufen kommen kann.

2. Benutzerdefinierte Datentypkonvertierung

Für benutzerdefinierte Datentypen können wir eine String-Konvertierung implementieren, indem wir die String-Methode des Typs überladen. Gleichzeitig können wir auch die JSON-Formatkonvertierung implementieren, indem wir die Methoden MarshalJSON und UnmarshalJSON des Typs überladen.

Beispielcode:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func (p Person) String() string {
    return fmt.Sprintf("Name=%s, Age=%d", p.Name, p.Age)
}

func (p *Person) UnmarshalJSON(b []byte) error {
    type tmp Person
    t := &tmp{}
    err := json.Unmarshal(b, t)
    if err != nil {
        return err
    }
    p.Name = t.Name
    p.Age = t.Age
    return nil
}

func (p Person) MarshalJSON() ([]byte, error) {
    type tmp Person
    t := tmp(p)
    return json.Marshal(t)
}

func main() {
    p1 := &Person{"Tom", 18}

    // 转换为字符串
    str := p1.String()
    fmt.Println("转换结果为:", str)

    // 转换为JSON格式
    json1, _ := json.Marshal(p1)
    fmt.Println("转换结果为:", string(json1))

    // 从JSON格式转换回来
    str2 := `{"name":"Jerry","age":20}`
    var p2 Person
    json.Unmarshal([]byte(str2), &p2)
    fmt.Println("转换结果为:", p2)
}

Anhand des obigen Codes können wir erkennen, dass wir für die Konvertierung benutzerdefinierter Typen die Konvertierungsfunktion manuell implementieren müssen, damit sie normal verwendet werden kann.

3. Zusammenfassung

Dieser Artikel fasst die Konvertierungsmethoden für grundlegende Datentypen und benutzerdefinierte Datentypen in Golang zusammen und stellt auch einige Vorsichtsmaßnahmen vor. In praktischen Anwendungen müssen wir je nach Bedarf flexibel verschiedene Konvertierungsmethoden auswählen, um Daten besser verarbeiten zu können.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Daten in Golang. 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-Datei zum HashNächster Artikel:Golang-Datei zum Hash