kehuadong

十万个为什么 [sproto] 局外观察

总体观察:

1. sproto.lua是对外接口, sprotoparser.lua是内部细节, 并且只在sproto.lua中的parse导入和使用一次,从而实现最小关联

2. sprotoparser.lua分析string得到table,并序列化为字节流, 只使用了lpeg和lua标准库,  没额外导入

3. sproto.lua大部分函数都是对sproto.core的C函数的二次封装

 

关于lua的元表

  对于某个对象,设置元表,用于重载操作符,并通过__index和__newindex进行元素访问与设置

 

关于lua的string.pack

  

< 以小端方式存储数值
> 以大端方式存储数值
s 存储字符串长度后存储字符串
I 存储uint数值
i 存储int数值

 

posted on 2024-08-15 09:22  kehuadong  阅读(1)  评论(0编辑  收藏  举报

导航