如何在 lua 中将字符串转换为布尔值
How to convert string to boolean in lua
我从另一个脚本接收到数据,其中变量的值为“false”或“true”。我想在 lua 数据类型中将此值转换为 true 或 false。目前,我可以走这么远的路:
if value == "false" then
value=false
elseif value == "true" then
value=true
end
有没有最简单的方法来转换它,比如将字符串转换为整数 tonumber("1")
不,因为"false"
也会计算为true
,所以如果你想让"false"
计算为false
,你必须手动转换它。
由于我经常对接收到的每个数据进行转换,因此像我在上面发布的那样手动将字符串转换为布尔值会使代码变得多余。所以我创建了一个函数来克服这个问题:
function toboolean(str)
local bool = false
if str == "true" then
bool = true
end
return bool
end
所以我可以做到这一点
toboolean("true")
除“true”字符串以外的任何内容都将变为 false
您也可以这样做:
stringtoboolean={ ["true"]=true, ["false"]=false }
print(stringtoboolean[s])
大小写独立方式:
function str_to_bool(str)
if str == nil then
return false
end
return string.lower(str) == 'true'
end
我从另一个脚本接收到数据,其中变量的值为“false”或“true”。我想在 lua 数据类型中将此值转换为 true 或 false。目前,我可以走这么远的路:
if value == "false" then
value=false
elseif value == "true" then
value=true
end
有没有最简单的方法来转换它,比如将字符串转换为整数 tonumber("1")
不,因为"false"
也会计算为true
,所以如果你想让"false"
计算为false
,你必须手动转换它。
由于我经常对接收到的每个数据进行转换,因此像我在上面发布的那样手动将字符串转换为布尔值会使代码变得多余。所以我创建了一个函数来克服这个问题:
function toboolean(str)
local bool = false
if str == "true" then
bool = true
end
return bool
end
所以我可以做到这一点
toboolean("true")
除“true”字符串以外的任何内容都将变为 false
您也可以这样做:
stringtoboolean={ ["true"]=true, ["false"]=false }
print(stringtoboolean[s])
大小写独立方式:
function str_to_bool(str)
if str == nil then
return false
end
return string.lower(str) == 'true'
end