Lua:有没有办法连接“nil”值?

时间:2011-11-08 11:18:35

标签: lua concatenation null

我在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,看看是否填充了这个,但我已经找到了那个部分。我现在只需要克服这个小障碍。谢谢!

2 个答案:

答案 0 :(得分:19)

我会这样做:

function iffunc(k,str,str1)
  if k == 0 then return "" end
  return str .. k .. (str1 or "")
end

答案 1 :(得分:1)

您应该在函数中添加else语句,返回空字符串("")。