Gob 是一種 Golang 資料編碼器,可用於對自訂資料類型進行編碼和解碼。編碼步驟:引入 encoding/gob 套件。建立實作了 GobEncoder 介面的自訂類型。使用 gob.Encode() 編碼資料。解碼步驟:建立與編碼類型相符的自訂類型。使用 gob.NewDecoder() 建立一個解碼器。使用 Decode() 解碼資料。實戰案例:將 Person 類型序列化為二進位資料並將其列印到標準輸出。
Gob:Golang 中的資料編碼器
Golang 提供了一套用於編碼和解碼資料的強大函數集。其中一種名為 Gob 的編碼器特別適用於針對網路傳輸對自訂資料類型進行編碼。
使用Gob 進行編碼
要使用Gob 對資料進行編碼,請執行下列步驟:
引入encoding/gob
套件:
import "encoding/gob"
建立一個實作了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 }
使用gob.Encode()
函數編碼資料:
var p Person encoder := gob.NewEncoder(os.Stdout) encoder.Encode(p)
#使用Gob 進行解碼
##要使用Gob對資料進行解碼,請執行下列步驟:type Person struct { Name string Age int }
gob.NewDecoder() 建立一個解碼器:
decoder := gob.NewDecoder(r)
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) }
Person 類型編碼為二進位資料並將其列印到標準輸出。
以上是Gob,Golang中的資料編碼器的詳細內容。更多資訊請關注PHP中文網其他相關文章!