github.com/gogf/gf@v1.16.9/.example/encoding/gbinary/binary.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/gogf/gf/encoding/gbinary" 7 "github.com/gogf/gf/os/glog" 8 ) 9 10 func main() { 11 // 使用gbinary.Encoded对基本数据类型进行二进制打包 12 fmt.Println(gbinary.Encode(18, 300, 1.01)) 13 14 // 使用gbinary.Decode对整形二进制解包,注意第二个及其后参数为字长确定的整形变量的指针地址,字长确定的类型, 15 // 例如:int8/16/32/64、uint8/16/32/64、float32/64 16 // 这里的1.01默认为float64类型(64位系统下) 17 buffer := gbinary.Encode(18, 300, 1.01) 18 var i1 int8 19 var i2 int16 20 var f3 float64 21 if err := gbinary.Decode(buffer, &i1, &i2, &f3); err != nil { 22 glog.Error(err) 23 } else { 24 fmt.Println(i1, i2, f3) 25 } 26 27 // 编码/解析 int,自动识别变量长度 28 fmt.Println(gbinary.DecodeToInt(gbinary.EncodeInt(1))) 29 fmt.Println(gbinary.DecodeToInt(gbinary.EncodeInt(300))) 30 fmt.Println(gbinary.DecodeToInt(gbinary.EncodeInt(70000))) 31 fmt.Println(gbinary.DecodeToInt(gbinary.EncodeInt(2000000000))) 32 fmt.Println(gbinary.DecodeToInt(gbinary.EncodeInt(500000000000))) 33 34 // 编码/解析 uint,自动识别变量长度 35 fmt.Println(gbinary.DecodeToUint(gbinary.EncodeUint(1))) 36 fmt.Println(gbinary.DecodeToUint(gbinary.EncodeUint(300))) 37 fmt.Println(gbinary.DecodeToUint(gbinary.EncodeUint(70000))) 38 fmt.Println(gbinary.DecodeToUint(gbinary.EncodeUint(2000000000))) 39 fmt.Println(gbinary.DecodeToUint(gbinary.EncodeUint(500000000000))) 40 41 // 编码/解析 int8/16/32/64 42 fmt.Println(gbinary.DecodeToInt8(gbinary.EncodeInt8(int8(100)))) 43 fmt.Println(gbinary.DecodeToInt16(gbinary.EncodeInt16(int16(100)))) 44 fmt.Println(gbinary.DecodeToInt32(gbinary.EncodeInt32(int32(100)))) 45 fmt.Println(gbinary.DecodeToInt64(gbinary.EncodeInt64(int64(100)))) 46 47 // 编码/解析 uint8/16/32/64 48 fmt.Println(gbinary.DecodeToUint8(gbinary.EncodeUint8(uint8(100)))) 49 fmt.Println(gbinary.DecodeToUint16(gbinary.EncodeUint16(uint16(100)))) 50 fmt.Println(gbinary.DecodeToUint32(gbinary.EncodeUint32(uint32(100)))) 51 fmt.Println(gbinary.DecodeToUint64(gbinary.EncodeUint64(uint64(100)))) 52 53 // 编码/解析 string 54 fmt.Println(gbinary.DecodeToString(gbinary.EncodeString("I'm string!"))) 55 }