为何tolong处理strcat生成的字符串与直接定义字符串结果不一致?
为何tolong(s)与tolong(ss)无法产生相同输出?
这是一个已确认的bug:尽管通过==判断字符串s和ss内容相等,但strcat拼接生成的字符串在内部处理逻辑上和直接赋值的字符串存在差异,导致tolong函数解析二者时返回不同结果。
复现代码
let s = '0x0000000000000000000000000000000a'; let ss = strcat('0x', '0000000000000000000000000000000a'); print s = s, ss = ss, s_equal_ss = (s == ss), tolong_s = tolong(s), tolong_ss = tolong(ss)
测试现象
执行代码后可见:
s和ss的字符串内容完全一致,s_equal_ss返回truetolong(s)与tolong(ss)的输出结果却不相同
结论
该问题属于函数实现bug,strcat生成的字符串未被tolong正确识别解析,虽然表面字符串内容匹配,但内部存储或解析逻辑存在异常。
内容的提问来源于stack exchange,提问作者actual_panda
相关产品推荐
相关产品推荐

