我在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,它将返回错误。我可以很容易地在iffunc本身中放入'return 0';但是,我也不想要一串000。那么我怎么能在无论哪个值为零的情况下工作呢,我都不会得到那个错误?最终,我将在levellbon变量上做一个iffunc,看看是否填充了这个,但我已经找到了那个部分。我现在只需要克服这个小障碍。谢谢!
答案 0 :(得分:19)
我会这样做:
function iffunc(k,str,str1)
if k == 0 then return "" end
return str .. k .. (str1 or "")
end
答案 1 :(得分:1)
您应该在函数中添加else
语句,返回空字符串(""
)。