检测是否可以在Lua中打印变量

时间:2013-04-25 11:49:16

标签: string types lua

我有一个可能是多种类型的变量 - 有时它是一个字符串,有时是数字,表格或bool。我试图每次都打印出变量的值:

print("v: "..v)

v是我的变量。问题是,当我得到一个无法连接的值时,我得到了这个错误:

  

myscript.lua:79:尝试连接表值

我已经尝试将其更改为此,以防它设法检测是否可以打印变量:

print("v: "..(v or "<can't be printed>"))

但我在那里遇到了同样的问题。是否有某种函数可用于确定变量是否可以连接到字符串,还是更好的打印变量的方法?

2 个答案:

答案 0 :(得分:7)

您可以将值作为单独的参数提供给print:

print("v:", v)

这会打印类似

的内容
v:  table: 006CE900

不一定是最有用的,但如果它仅用于调试目的,则不如崩溃。

See here for information on more useful table printing.

答案 1 :(得分:5)

tostring(v)适用于所有可能的v值(包括nil)。所以写你的行:

print(“v:”.. tostring(v))

永远有效。

或者你可以查看类型(v),如果它的“字符串”打印出来,否则打印其他内容(如果那是你想要的)。