Lua通常是一种
strongly-typed语言,几乎不提供数据类型之间的隐式转换.
但是,数字和字符串确实得到automatically coerced in a few cases:
Lua provides automatic conversion between string and number values at run time. Any arithmetic operation applied to a string tries to convert this string to a number,following the rules of the Lua lexer. (The string may have leading and trailing spaces and a sign.) Conversely,whenever a number is used where a string is expected,the number is converted to a string,in a reasonable format
从而:
local x,y,z = "3","8","11" print(x+y,z) --> 11 11 print(x+y==z) --> false print(x>z) --> true
我更愿意:
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