parser: int const type support is not friendly
Closed this issue · 4 comments
Anthony-Dong commented
例子:
// 某业务,定义常量的时候会根据位数进行区分,比如下列例子是前4位和后四位分别有不同含义
const i16 SUB_BIZ_TYPE_INSURANCE_CLAIM = 00040001
const i16 SUB_BIZ_TYPE_TEST_SCENE_A = 00049999
const i16 SUB_BIZ_TYPE_TEST_SCENE_B = 00049998
目前解析报错:
parse demo.thrift err: parseConstValue failed at '00049999': strconv.ParseInt: parsing "00049999": invalid syntax
期望: 支持这种类型
sdk版本: v0.1.3
lsjbd commented
有哪一种编程语言会使用这样的表示法吗?还是原创的?
据我所知,以 0 开头的整型字面量语法只有 8 进制和 16 进制两种,而你的实例显然都不是,对其做支持只会带来混乱。
如果要对根据某些位数分段来做区分,显然用字符串更天然和直接。
Anthony-Dong commented
但是这块,确实存量业务接入有这种问题,而且内部kite确实也支持,我理解既然新的应该也要兼容下旧的业务吧!而且这样定义number类型确实很多语言也都支持!
lsjbd commented
但是这块,确实存量业务接入有这种问题,而且内部kite确实也支持,我理解既然新的应该也要兼容下旧的业务吧!而且这样定义number类型确实很多语言也都支持!
据我所知,至少 00049999
这样的整型字面量,在 golang 和 python 里就是非法的。
Anthony-Dong commented
确实是,不好意思,如果不考虑兼容这个的话也是合理的!这个我先关闭了!