Réponse : Gob est un package de données utilisé pour le codage des données dans le langage Go, qui peut sérialiser et désérialiser les données. Description : utilisez Gob pour encoder les données, à l'aide de la fonction Encoder.Encode. Pour décoder les données à l'aide de Gob, utilisez la fonction Decoder.Decode. Cas pratique : Structure persistante, utilisez Encoder pour encoder les données et les écrire dans un fichier. Restaurez la structure, utilisez Decoder pour décoder les données du fichier et lire la structure.
Introduction
Gob est un puissant package d'encodage de données dans le langage Go qui peut être utilisé pour sérialiser et désérialiser n'importe quel type de données. Grâce à Gob, nous pouvons convertir des objets complexes en tableaux d'octets pour assurer la persistance des données ou la transmission réseau.
Comment utiliser Gob
Utiliser Gob est très simple, vous devez importer le package "encoding/gob"
. "encoding/gob"
包。
import "encoding/gob"
编码
要对数据进行编码,可以使用gob.Encoder.Encode
函数。编码器可以先通过gob.NewEncoder
创建。
// 创建一个编码器,指向文件或网络连接 encoder := gob.NewEncoder(w) // 对数据进行编码 err := encoder.Encode(data) if err != nil { // 处理错误 }
解码
要对数据进行解码,可以使用gob.Decoder.Decode
函数。解码器可以先通过gob.NewDecoder
创建。
// 创建一个解码器,指向文件或网络连接 decoder := gob.NewDecoder(r) // 对数据进行解码 err := decoder.Decode(&data) if err != nil { // 处理错误 }
实战案例:持久化结构体
假设我们有一个Employee
type Employee struct { Name string Age int Salary float64 }
Encoding
Pour encoder des données, vous pouvez utiliser la fonctiongob.Encoder.Encode
. L'encodeur peut être créé d'abord via gob.NewEncoder
. func saveEmployee(e Employee) error { f, err := os.Create("employee.dat") if err != nil { return err } defer f.Close() encoder := gob.NewEncoder(f) err = encoder.Encode(e) if err != nil { return err } return nil }
gob.Decoder.Decode
. Le décodeur peut être créé d'abord via gob.NewDecoder
. 🎜func loadEmployee() (Employee, error) { f, err := os.Open("employee.dat") if err != nil { return Employee{}, err } defer f.Close() decoder := gob.NewDecoder(f) var e Employee err = decoder.Decode(&e) if err != nil { return Employee{}, err } return e, nil }
Employé
et que nous souhaitions la conserver dans un fichier. 🎜rrreee🎜🎜persistence🎜🎜rrreee🎜🎜lire🎜🎜rrreeeCe 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!