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

String 检测变量是否可以在Lua中打印,string,types,lua,String,Types,Lua,我有一个变量可以是多种类型——有时是字符串,有时是数字、表格或布尔。我每次都试图打印变量的值,如下所示: print("v: "..v) 将v作为我的变量。问题是,当我得到一个无法连接的值时,我会得到以下错误: lua:79:尝试连接表值 我尝试将其更改为此,以防它能够检测变量是否可以打印: print("v: "..(v or "<can't be printed>")) print(“v:”…(v或“您可以将这些值作为单独的参数提供以进行打印: print("v:", v)

我有一个变量可以是多种类型——有时是字符串,有时是数字、表格或布尔。我每次都试图打印变量的值,如下所示:

print("v: "..v)
v
作为我的变量。问题是,当我得到一个无法连接的值时,我会得到以下错误:

lua:79:尝试连接表值

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

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

print(“v:”…(v或“您可以将这些值作为单独的参数提供以进行打印:

print("v:", v)
这会打印出类似于

v:  table: 006CE900
不一定是最有用的,但是如果只是为了调试的目的,它比崩溃要好

tostring(v)适用于所有可能的v值(包括nil)。因此,将您的行写为:

打印(“v:…tostring(v))

我会一直工作的


或者你可以看一看类型(v),如果它的“字符串”打印它,否则打印其他东西(如果你想要的话)。

print(“v:…(tostring(v)或“No print”))可能会工作。虽然我不知道tostring以表为参数返回什么。@FrederikSpang-为什么
ing?简单地
print('v='…tostring(v))
因为我不知道表输入的结果。我已经有一段时间没有做lua了-@egorskriptunoff我认为这应该被标记为答案!