我收到了来自另一个脚本的数据,其中变量的值为“false”或“true”。我想将此值转换为lua数据类型中的true或false。目前,我可以用以下繁琐的方式实现:
if value == "false" then
value=false
elseif value == "true" then
value=true
end
有没有一种最简单的方法将这个转换,就像将字符串转换为整数tonumber(“1”)
我收到了来自另一个脚本的数据,其中变量的值为“false”或“true”。我想将此值转换为lua数据类型中的true或false。目前,我可以用以下繁琐的方式实现:
if value == "false" then
value=false
elseif value == "true" then
value=true
end
有没有一种最简单的方法将这个转换,就像将字符串转换为整数tonumber(“1”)
你也可以这样做:
stringtoboolean={ ["true"]=true, ["false"]=false }
print(stringtoboolean[s])
由于我经常要对收到的每个数据进行转换,手动将字符串转换为布尔值像我上面发布的那样会使代码变得冗余。因此,我创建了一个函数来解决这个问题:
function toboolean(str)
local bool = false
if str == "true" then
bool = true
end
return bool
end
所以我可以做到这一点
toboolean("true")
除了"true"字符串之外,其他任何内容都会变成false
"true"
返回为true
,将其他所有内容返回为false
,因此您可以简化它为:function toboolean(str) return str == "true" end
。 - ToxicFrog"false"
也会被评估为true
,所以如果你想让"false"
被评估为false
,你需要手动进行转换。然后总是有
str=="true" and true or false
lua模拟三元运算符,或用于大小写不敏感
(str and string.lower(str))=="true" and true or false
短路评估将在str==nil时防止异常
不区分大小写的方式:
function str_to_bool(str)
if str == nil then
return false
end
return string.lower(str) == 'true'
end
[ ]
。 - ToiletGuy[ ]
,你无法深入了解 Lua 中最重要的数据类型。因此最好停止对它的厌恶;-) - Pigletstringtoboolean(s)
,如果您更喜欢的话。 - lhf