【发布时间】:2011-12-24 09:00:15
【问题描述】:
我在 Lua 中有以下功能:
function iffunc(k,str,str1)
if k ~= 0 then
return str .. k .. (str1 or "")
end
end
这个函数允许我检查值 k 是否被填充。我实际上是用它来确定是否要显示零值的东西。我的问题是:我正在尝试连接 iffunc() 的字符串,但由于某些值为 0,因此它返回尝试连接 nil 值的错误。例如:
levellbon = iffunc(levellrep["BonusStr"],"@wStr@r{@x111","@r}") .. iffunc(levellrep["BonusInt"],"@wInt@r{@x111","@r}") .. iffunc(levellrep["BonusWis"],"@wWis@r{@x111","@r}")
如果任何一个表值为 0,它将返回错误。我可以很容易地将'return 0'放在 iffunc 本身中;但是,我也不想要一串 000。那么,无论哪个值为零,我都不会得到那个错误,我该如何工作呢?最终,我将对 levellbon 变量执行 iffunc 以查看它是否已填充,但我已经弄清楚了那部分。我现在只需要克服这个小障碍。谢谢!
【问题讨论】:
-
当
k为0 时,您不能只返回一个空字符串("") 吗? -
天啊!我不敢相信事情就这么简单。我将其归咎于编码时间和睡眠不足。谢谢!现在只需要稍微修改一下函数。
-
只是为了让您知道将来,您可以这样做:
something and A or B。如果something的计算结果为true,它将推送值A,否则将推送值B。示例:k ~= 0 and str..k..(str1 or "") or "" -
@JoachimPileborg 您绝对应该将其添加为正确答案。
-
所选答案工作正常,但这对我来说似乎也工作正常: print("this is a string" .. tostring(nilObject)) 上面的行打印输出:这是一个字符串 nil
标签: lua concatenation null