【发布时间】:2013-11-08 23:43:24
【问题描述】:
我目前有一些使用以下语法的 Lua 代码:
if (foo == nil or foo == '') then
foo = "some default value"
end
if 条件的目标是测试 foo 既不是空字符串,也不是 nil 值。
如果测试不是两个,这个代码可以简化为一个吗?
【问题讨论】:
-
那么,你到底在测试 foo、bar 还是 foo.bar?如果你有
foo.bar,你可以有一些像local function test(foo, bar) { if (foo.bar == nil or foo.bar == '') then foo.bar = "some default value" end end这样的函数来解决问题。 -
foo = foo 或“一些默认值”
-
假设您不希望 foo 的 'false' 计数,您可以使用
if (not foo) or (foo == '') then ...,否则它会尽可能短。 -
@doog 坚持,不会工作。在 Lua 中 -
'' == true,nil == false. -
foo = (foo or '')=='' and 'default value' or foo