• Writer
    • NewWriter 构造函数
    • Simple 字段
    • Reset 方法
    • Serialize 方法
    • WriteBigFloat 方法
    • WriteBigInt 方法
    • WriteBigRat 方法
    • WriteBool 方法
    • WriteBytes 方法
    • WriteComplex128 方法
    • WriteComplex64 方法
    • WriteFloat 方法
    • WriteInt 方法
    • WriteList 方法
    • WriteNil 方法
    • WriteSlice 方法
    • WriteString 方法
    • WriteStringSlice 方法
    • WriteTime 方法
    • WriteTuple 方法
    • WriteUint 方法
    • WriteValue 方法

    Writer

    NewWriter 构造函数

    1. func NewWriter(simple bool, buf ...byte) (w *Writer)

    simple 如果为 true,则不使用引用方式序列化,通常在序列化的数据中不包含引用类型数据时,设置为 true 可以加快速度。当包含引用类型数据时,需要设置为 false(即默认值),尤其是当引用数据中包括递归数据时,如果不使用引用方式,会陷入死循环导致堆栈溢出的错误。

    buf 为初始写入的数据。

    Simple 字段

    同上面的 simple 参数。

    Reset 方法

    1. func (w *Writer) Reset()

    将序列化的引用计数器重置。

    Serialize 方法

    1. func (w *Writer) Serialize(v interface{}) *Writer

    序列化数据 v。其中 v 为任意 hprose 支持的类型。

    WriteBigFloat 方法

    1. func (w *Writer) WriteBigFloat(bf *big.Float)

    序列化一个 *big.Float 数据,以浮点数方式序列化。

    WriteBigInt 方法

    1. func (w *Writer) WriteBigInt(bi *big.Int)

    序列化一个 *big.Int 数据,以长整数类型序列化。

    WriteBigRat 方法

    1. func (w *Writer) WriteBigRat(br *big.Rat)

    序列化一个 *big.Rat 数据,如果该数字为整数,则以长整数类型序列化,否则以字符串类型序列化。

    WriteBool 方法

    1. func (w *Writer) WriteBool(b bool)

    序列化一个 bool 类型数据。

    WriteBytes 方法

    1. func (w *Writer) WriteBytes(bytes []byte)

    序列化一个 []byte 类型数据,以二进制串类型数据序列化。

    WriteComplex128 方法

    1. func (w *Writer) WriteComplex128(c complex128)

    序列化一个 complex128 类型数据。如果虚部为 0,则按照浮点数类型序列化,否则按照包含两个浮点数的元素的数组序列化。

    WriteComplex64 方法

    1. func (w *Writer) WriteComplex64(c complex64)

    序列化一个 complex64 类型数据。如果虚部为 0,则按照浮点数类型序列化,否则按照包含两个浮点数的元素的数组序列化。

    WriteFloat 方法

    1. func (w *Writer) WriteFloat(f float64, bitSize int)

    序列化一个浮点数。如果 f 原本是 float32bitSize 的值为 32,否则 bitSize 的值为 64

    WriteInt 方法

    1. func (w *Writer) WriteInt(i int64)

    序列化一个整数 i。如果 iint32 的范围内,则按照 hprose 的整数类型序列化,否则按照 hprose 的长整数类型序列化。

    WriteList 方法

    1. func (w *Writer) WriteList(lst *list.List)

    序列化一个 *list.List 类型的数据。按照 hprose 的数组列表类型序列化。

    WriteNil 方法

    1. func (w *Writer) WriteNil()

    序列化一个 nil 值。按照 hprose 的 Null 类型序列化。

    WriteSlice 方法

    1. func (w *Writer) WriteSlice(slice []reflect.Value)

    序列化一个 []reflect.Value 类型的数据,按照 hprose 的数组列表类型序列化。

    WriteString 方法

    1. func (w *Writer) WriteString(str string)

    序列化一个 string 类型的数据。如果 str 是 UTF8 编码,则按照字符串序列化,否则按照二进制串序列化。

    WriteStringSlice 方法

    1. func (w *Writer) WriteStringSlice(slice []string)

    序列化一个 []string 类型的数据。序列化为 hprose 的数组列表类型。

    WriteTime 方法

    1. func (w *Writer) WriteTime(t *time.Time)

    序列化一个 *time.Time 类型的数据。按照 hprose 的日期,时间或者日期时间类型序列化。

    WriteTuple 方法

    1. func (w *Writer) WriteTuple(tuple ...interface{})

    将多个数据按照 hprose 的数组列表类型序列化。

    WriteUint 方法

    1. func (w *Writer) WriteUint(i uint64)

    序列化一个无符号整数 i。如果 i 范围在 int32 范围内,则按照整数类型序列化,否则按照长整数类型序列化。

    WriteValue 方法

    1. func (w *Writer) WriteValue(v reflect.Value)

    序列化一个 reflect.Value 类型的数据。