Closed t0350 closed 3 years ago
增加了 SPROTO_WEAK_TYPE 宏,希望能在 sproto 中支持弱类型开启与否,放松类型校验。
SPROTO_WEAK_TYPE
起因是项目组中出现把 number 值赋值给了 sproto integer 类型,导致报错。测试时未能暴露,出错的时候已经是在线上环境,造成影响比较大。
如果单纯直接放松检查,我觉得不太可取。结合 lua 的几个 api 考虑了下,增加宏开关使得 sproto 放松类型校验。 原来的情况是这样的:
开启 SPROTO_WEAK_TYPE 宏后,行为同 lua_toxxx 一致:
麻烦云风看一下,或者看是否有其他建议。谢谢。
没什么问题,但我觉得如果要放宽的话,应该用 luaL_tolstring 更好。这个能触发元方法。另外 lua 5.4 已经是借助元方法来支持 string number 互转了。
@cloudwu 已经修改过来。在弱类型模式下,sproto string 也支持传递带 __tostring 方法的 table。
@t0350 可以 帮忙 提个 pr 到 skynet 不?
好的 = = 。我提一下。
增加了
SPROTO_WEAK_TYPE
宏,希望能在 sproto 中支持弱类型开启与否,放松类型校验。起因是项目组中出现把 number 值赋值给了 sproto integer 类型,导致报错。测试时未能暴露,出错的时候已经是在线上环境,造成影响比较大。
如果单纯直接放松检查,我觉得不太可取。结合 lua 的几个 api 考虑了下,增加宏开关使得 sproto 放松类型校验。 原来的情况是这样的:
开启
SPROTO_WEAK_TYPE
宏后,行为同 lua_toxxx 一致:麻烦云风看一下,或者看是否有其他建议。谢谢。