GoはGobを使用してデータを格納する.

2537 ワード

GoはGobを使用してデータを格納する.
Gobを使用すると、非常に便利なデータの保存とデータの転送ができます.まず、例を挙げて、直接に公式の構造体を使用します.
 
package main
import(
    
「bytes」
    
「encoding/gob」
    
「fmt」
    
ロゴ
)
type P
struct{
    X,Y,Z
要点
    Name    
ストリングス
)
タイプ
struct{
    X,Y
*int 32
    Name
ストリングス
)
func main(){
    var network bytes.Buffer        
//Stand-i for a network connection
    enc
:
=gob.NewEnder(
&network)
//Will write to network.
    dec
:
=gob.NewDecoder(
&network)
//Will read from network.
    
    err
:
=enc.Enccode(P{}
3,
4,
5,
「Pythagoras」)
    
if er
!=nil{
        log.Fatal(
「encode error:」、err)
    }
    
    var q
    err
=dec.Decode(
&q)
    
if er
!=nil{
        log.Fatal(
「decode error:」、err)
    }
    fmt.Printf(
「%q:“%d、%d]」、q.Name、
*q.X
*q.Y)
)
          ,             bytes.Buffer ,      bytes.Buffer       ,     ,     
   <<Go  JSON Byte[]  >>        json   ,        ?      .
package main
import(
    
「bytes」
    
「encoding/gob」
    
「fmt」
    
ロゴ
    
「io/ioutil」
    
「オズ」
)
type P
struct{
    X,Y,Z
要点
    Name    
ストリングス
)
タイプ
struct{
    X,Y
*int 32
    Name
ストリングス
)
func main(){
    var fout bytes.Buffer        
    enc
:
=gob.NewEnder(
&fout)
//新しいエンコーダ
    
    err
:
=enc.Enccode(P{}
3,
4,
5,
「Pythagoras」)
//符号化構造体とデータ
    
if er
!=nil{
        log.Fatal(
「encode error:」、err)
    }
    ioutil.WriteFile(
「vt.dat」、fout.Bytes()
0644)
//書込みファイル
    
//読出しデコード
    fin,err
:
=os.Open(
「vt.dat」)
//データの読み込み
    dec
:
=gob.NewDecoder(fin)
//復号データ
    var q
    err
=dec.Decode(
&q)
    
if er
!=nil{
        log.Fatal(
「decode error:」、err)
    }
    fmt.Printf(
「%q:“%d、%d]」、q.Name、
*q.X
*q.Y)
)
              .      .
*
?P
?X Y Z Name
?Pythagoras
     .
142