📅  最后修改于: 2023-12-03 15:17:27.521000             🧑  作者: Mango
在 Lua 编程中,我们经常需要打印所有元素表来方便调试,此时我们可以使用 TypeScript 来实现这个功能。
function printTable(t: object, indent: number = 0): void {
const keys = Object.keys(t);
keys.forEach((key) => {
const value = t[key];
if (typeof value === 'object') {
console.log('\t'.repeat(indent) + key + ': {');
printTable(value, indent + 1);
console.log('\t'.repeat(indent) + '}');
} else {
console.log('\t'.repeat(indent) + key + ': ' + value);
}
});
}
local myTable = {
name = 'Tom',
age = 18,
address = {
city = 'Shanghai',
country = 'China'
}
}
printTable(myTable)
name: Tom
age: 18
address: {
city: Shanghai
country: China
}
上述代码中,printTable
函数接收一个对象和一个缩进量作为参数,使用 Object.keys
方法获取对象的所有键,遍历每一个键并获取其对应的值 value
。如果该值为对象则递归调用 printTable
函数进行深度优先遍历,否则直接打印键值对。在打印时,我们使用了 '\t'.repeat(indent)
来确定打印时的缩进大小。
最后,在 Lua 中调用 printTable
函数并传入表即可打印出所有元素表。