を、標準機能はhereと記載されています。スタンダードの「tostring」機能は、テーブルに表示される16進数を取得する唯一の方法です。
残念ながら、いずれの関数もすべてのテーブルに対して異なる処理を行う構成はありません。
しかし、修正のためにいくつかの点があります。独自の関数を作成し、毎回代わりに呼び出すことができます。また、グローバル変数print
またはtostring
のいずれかを自分の関数に割り当てることもできます。または、tostring
が必要な各テーブルに__tostring
メタメソッドを設定すると、別の答えが返されます。これの利点は、1つのセットアップステップで必要なフォーマットが得られることです。欠点は、各テーブルを設定する必要があることです。
local function simplifyTableToString(t)
local answer = tostring(t):gsub("table: ", "", 1)
local mt = getmetatable(t)
if not mt then
mt = {}
setmetatable(t, mt)
end
mt.__tostring = function() return answer end
end
local a = {}
local b = {}
print(a, b)
simplifyTableToString(a)
print(a, b)
はい、私は正規表現のものを避けたかったのですが、別の方法はないようです。ありがとう – dani24