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)
)
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
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 mainimport(
「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