我试图以表格的形式打印信息,其间的间距永远不会改变,有点像c ++中的setw
答案 0 :(得分:5)
您可以使用string.format()
。格式参考与ISO C&#39 {s} sprintf()
和printf()
相同。为了快速参考,您可以使用例如this website
print(string.format("%10d%10d%10d", 114, 523, 15224))
将导致:
114 523 15224
基本上你可以选择(整数):
function printTable(t, length)
for _,row in pairs(t) do
local format = ""
for i=1,#row do format = format .. "%" .. length .. "d" end
print(string.format(format, table.unpack(row)))
end
end
这不是最有效的方式,但它会完成工作:
> S = {{432, 324, 5325, 4356}, {4325, 5643, 223, 543}, {234, 1, 23, 656}}
> printTable(S, 8)
432 324 5325 4356
4325 5643 223 543
234 1 23 656