编译Lua而不在字符串和数字之间自动转换
Lua通常是一种
strongly-typed语言,几乎不提供数据类型之间的隐式转换.
但是,数字和字符串确实得到automatically coerced in a few cases:
从而: local x,y,z = "3","8","11" print(x+y,z) --> 11 11 print(x+y==z) --> false print(x>z) --> true 我不想要这个.如何重新编译Lua解释器以删除所有自动转换? 我更愿意: print(x+y) --> error: attempt to perform arithmetic on a string value print(x>1) --> error: attempt to compare number with string print(x..1) --> error: attempt to concatenate a number value 解决方法
杰出的
LHF在上面评论说这不是开箱即用的,需要编辑Lua的内部,从
http://www.lua.org/source/5.2/lvm.c.html#luaV_tonumber开始
将此标记为答案以便结束此问题.如果有人后来选择提供有关需要做什么的深入细节的答案,我很乐意将接受标记切换到该答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |