文档章节

gob编码解码

x
 xxbbdd
发布于 2017/09/03 08:44
字数 176
阅读 27
收藏 0

gob可以正确编码解码slice和指针。 

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
    "log"
)

type Fobj struct {
    Path string
    Stamp int
}

type P struct {
    Fobjs []*Fobj
}


// This example shows the basic usage of the package: Create an encoder,
// transmit some values, receive them with a decoder.
func test() {
    // Initialize the encoder and decoder. Normally enc and dec would be
    // bound to network connections and the encoder and decoder would
    // run in different processes.
    var network bytes.Buffer        // Stand-in for a network connection
    enc := gob.NewEncoder(&network) // Will write to network.
    dec := gob.NewDecoder(&network) // Will read from network.

    p := new(P)
    p.Fobjs = append(p.Fobjs, &Fobj{Path:"aaa", Stamp:111})
    p.Fobjs = append(p.Fobjs, &Fobj{Path:"aaabbb", Stamp:111222})


    // Encode (send) some values.
    err := enc.Encode(p)
    if err != nil {
        log.Fatal("encode error:", err)
    }

    // Decode (receive) and print the values.
    var q P
    err = dec.Decode(&q)
    if err != nil {
        log.Fatal("decode error 1:", err)
    }

    for _, x := range q.Fobjs {
        fmt.Println(x.Path, x.Stamp)
    }
}

func main() {
    test()
}

 

 

 

输出:

aaa 111
aaabbb 111222

 

© 著作权归作者所有

上一篇: go元素初始化
下一篇: context测试。
x
粉丝 0
博文 14
码字总数 4734
作品 0
私信 提问
Golang Gob编码

gob是Golang包自带的一个数据结构序列化的编码/解码工具。编码使用Encoder,解码使用Decoder。一种典型的应用场景就是RPC(remote procedure calls)。 gob和json的pack之类的方法一样,由发送...

王二狗子11
2018/01/08
0
0
golang - gob与rpc

  今天和大家聊聊golang中怎么使用rpc,rpc数据传输会涉及到gob编码,所以先讲讲gob,别担心,就算你完全没有接触过gob与rpc,只要知道rpc的中文是远程过程调用,剩下的我都能给你讲明白(...

CloudGeek
2018/07/21
0
0
go中struct和[]byte互相转换

go中struct和[]byte互相转换 binary 包处理二进制 读取将r中的结构化二进制数据读入数据。 数据必须是指向固定大小值或固定大小值切片的指针。从r读取的字节使用指定的字节顺序进行解码,并写...

solate
01/07
1K
0
golang中gob这个库编解码的问题?

在golang中gob这个编解码库是不是NewEncoder和NewDecoder必须同时用,编解码才能正确解出呢? 这个问题搞的我郁闷了,我用java和go语言通信,go语言服务端收到一个码流用gob的NewDecoder解码...

DEC_LIU
2013/06/08
490
1
Go学习笔记三:网络通信

Go学习笔记三-网络通信 1. 引言 网络通信是IT系统的必备功能,如果是做一些简单的工具类或者小软件,我们可以直接采用原生的SOCKET进行编程开发;如果项目规模比较大,则是基于一些网络通信库...

西昆仑
2016/05/31
106
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
16
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部