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 を含む) に対して機能します。だからあなたの行を次のように書いてください:

print( "v: " .. tostring( v ) )

常に機能します。

または、 type( v ) を見て、その「文字列」がそれを印刷する場合、そうでない場合は何か他のものを印刷することもできます (それが必要な場合)。

于 2013-05-01T09:08:07.463 に答える