jce序列化到lua的项目遇到一个难点,jce是类c++的,支持void,bool,byte,short,int,long,float,double,string等类型,而lua是动态类型语言,基本类型也只有number,string,function,table,usrdata....,怎么让jce中的类型正确的用Lua表示。
- 参考python的实现,python用的是struct库中的struct.pack()和struct.unpack()以及struct.unpack_from()方法。于是github找发现lua也有类似的库----lpack 下载链接:https://github.com/LuaDist/lpack,使用方法同bit库,用动态链接的方法。
- 具体调用方法,提供了两个接口: pack和unpack,但是有两种调用方法,使用宏(USE_GLOBALS)来控制,第一种是使用全局接口(pack/unpack),另外一种是将这两个接口插入到string的空间里面(string.pack/string.unpack)pack操作用于将lua变量按自定义类型打包成string类型,unpack用于解包,接口参数入下
-
pack (f, ...) Packs values into string Parameters: f:string Format string. ... Values to pack. Returns: string Packed string. unpack (s, f[, init]) Unpacks values from a string Paramet