4

我有一个变量,它可以是多种类型——有时是字符串,有时是数字、表格或布尔值。我每次都尝试像这样打印出变量的值:

print("v: "..v)

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

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

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

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

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

4

2 回答 2

8

您可以将这些值作为单独的参数提供来打印:

print("v:", v)

这将打印类似

v:  table: 006CE900

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

有关更有用的表格打印的信息,请参见此处。

于 2013-04-25T11:52:01.527 回答
6

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

打印(“v:”..tostring(v))

将永远有效。

或者,您可以查看 type( v ) ,如果它的“字符串”打印它,否则打​​印其他内容(如果这是您想要的)。

于 2013-05-01T09:08:07.463 回答