Maison  >  Article  >  développement back-end  >  Gob, un encodeur de données à Golang

Gob, un encodeur de données à Golang

王林
王林original
2024-04-07 14:48:02955parcourir

Gob est un encodeur de données Golang qui peut être utilisé pour encoder et décoder des types de données personnalisés. Étape d'encodage : introduire le package encoding/gob. Créez un type personnalisé qui implémente l'interface GobEncoder. Utilisez gob.Encode() pour encoder les données. Étape de décodage : créez un type personnalisé qui correspond au type d’encodage. Utilisez gob.NewDecoder() pour créer un décodeur. Utilisez Decode() pour décoder les données. Exemple pratique : sérialisez le type Personne en données binaires et imprimez-le sur la sortie standard.

Gob, un encodeur de données à Golang

Gob : Encodeur de données dans Golang

Golang fournit un ensemble puissant de fonctions pour encoder et décoder les données. L'un de ces encodeurs, appelé Gob, est particulièrement utile pour encoder des types de données personnalisés pour la transmission réseau.

Encodage à l'aide de Gob

Pour encoder des données à l'aide de Gob, suivez ces étapes :

  1. Introduisez le package encoding/gob : encoding/gob 包:

    import "encoding/gob"
  2. 创建一个实现了 GobEncoder 接口的自定义类型:

    type Person struct {
     Name string
     Age  int
    }
    
    func (p Person) GobEncode(w io.Writer) error {
     encoder := gob.NewEncoder(w)
     encoder.Encode(p.Name)
     encoder.Encode(p.Age)
     return nil
    }
  3. 使用 gob.Encode() 函数编码数据:

    var p Person
    encoder := gob.NewEncoder(os.Stdout)
    encoder.Encode(p)

使用 Gob 进行解码

要使用 Gob 对数据进行解码,请执行以下步骤:

  1. 创建一个与编码类型匹配的自定义类型:

    type Person struct {
     Name string
     Age  int
    }
  2. 使用 gob.NewDecoder() 创建一个解码器:

    decoder := gob.NewDecoder(r)
  3. 使用 Decode() 函数解码数据:

    decoder.Decode(&p)

实战案例

以下是一个将 Person 类型序列化为二进制数据的实战案例:

package main

import (
    "encoding/gob"
    "fmt"
    "io"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    var buf io.Writer = os.Stdout
    enc := gob.NewEncoder(buf)
    person := Person{Name: "John", Age: 30}
    enc.Encode(person)
}

运行代码会将 Personrrreee

Créez un type personnalisé qui implémentez l'interface GobEncoder :

rrreee🎜🎜Utilisez la fonction gob.Encode() pour encoder les données : 🎜rrreee🎜 🎜Décodage à l'aide de Gob🎜🎜🎜Pour décoder des données à l'aide de Gob, suivez ces étapes : 🎜🎜🎜🎜Créez un type personnalisé qui correspond au type d'encodage : 🎜rrreee🎜🎜Utilisez gob.NewDecoder() code> Créez un décodeur : 🎜rrreee🎜🎜Utilisez la fonction <code>Decode() pour décoder les données : 🎜rrreee🎜🎜Cas de combat pratique 🎜🎜🎜Le Voici un cas pratique de sérialisation du type Person en données binaires : 🎜rrreee🎜L'exécution du code encodera le type Person en données binaires et l'imprimera sur la sortie standard. 🎜🎜Gob Encoder est un outil efficace et facile à utiliser pour la transmission réseau ou le stockage persistant de types de données complexes. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn