cari
Rumahpembangunan bahagian belakangtutorial phpLua dump table(相仿PHP中的print_r/var_export)

Lua dump table(类似PHP中的print_r/var_export)

会PHP的人都知道PHP中的print_r/var_export函数,可以方便的用于打印数组或导出变量,Lua中没有提供,实际应用中却是很多时候需要类似的功能。

今天便封装了个简单函数,实现类似功能,用来打印/导出table:

-- dump.lua--[[dump对象@param mixed obj@return string]]function debug.dump(obj)    local getIndent, quoteStr, wrapKey, wrapVal, dumpObj    getIndent = function(level)        return string.rep("\t", level)    end    quoteStr = function(str)        return '"' .. string.gsub(str, '"', '\\"') .. '"'    end    wrapKey = function(val)        if type(val) == "number" then            return "[" .. val .. "]"        elseif type(val) == "string" then            return "[" .. quoteStr(val) .. "]"        else            return "[" .. tostring(val) .. "]"        end    end    wrapVal = function(val, level)        if type(val) == "table" then            return dumpObj(val, level)        elseif type(val) == "number" then            return val        elseif type(val) == "string" then            return quoteStr(val)        else            return tostring(val)        end    end    dumpObj = function(obj, level)        if type(obj) ~= "table" then            return wrapVal(obj)        end        level = level + 1        local tokens = {}        tokens[#tokens + 1] = "{"        for k, v in pairs(obj) do            tokens[#tokens + 1] = getIndent(level) .. wrapKey(k) .. " = " .. wrapVal(v, level) .. ","        end        tokens[#tokens + 1] = getIndent(level - 1) .. "}"        return table.concat(tokens, "\n")    end    return dumpObj(obj, 0)end

测试代码:

-- test.lualocal obj = {    string = "hello",    int = 9527,    float = 3.1415,    bool = true,    table = {        1, 2, 3,        {            a = 21,            b = 22,            c = 23,        },    },    [88] = 88888,    [9.7] = 22222,}print(debug.dump(obj))

输出结果:

{        ["float"] = 3.1415,        [9.7] = 22222,        ["string"] = "hello",        [88] = 88888,        ["bool"] = true,        ["int"] = 9527,        ["table"] = {                [1] = 1,                [2] = 2,                [3] = 3,                [4] = {                        ["b"] = 22,                        ["a"] = 21,                        ["c"] = 23,                },        },}

函数特点:

1、理论上支持无限级table嵌套

2、格式化输出,可读性好

3、输出结果可直接用于lua代码

4、function、userdata、thread类型tostring输出

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Penalaan prestasi PHP untuk laman web trafik yang tinggiPenalaan prestasi PHP untuk laman web trafik yang tinggiMay 14, 2025 am 12:13 AM

Thesecrettokeepingaphp-poweredwebsiterunningsmoothlyunderheavyloadinVolvesserVeSkeystrategies: 1) pelaksanaanPodeCachingWithopCachetoreduceScriptexecutionTime, 2) UsedataBasequerycachingWnithSoRessendataBaBAboad, 3)

Suntikan Ketergantungan dalam PHP: Contoh Kod untuk PemulaSuntikan Ketergantungan dalam PHP: Contoh Kod untuk PemulaMay 14, 2025 am 12:08 AM

Anda harus mengambil berat tentang kebergantungan (DI) kerana ia menjadikan kod anda lebih jelas dan lebih mudah untuk dikekalkan. 1) Di menjadikannya lebih modular dengan decoupling kelas, 2) meningkatkan kemudahan ujian dan fleksibiliti kod, 3) menggunakan bekas DI untuk menguruskan kebergantungan kompleks, tetapi memberi perhatian kepada kesan prestasi dan kebergantungan bulat, 4) Amalan terbaik adalah bergantung kepada antara muka abstrak untuk mencapai gandingan longgar.

Prestasi PHP: Adakah mungkin untuk mengoptimumkan aplikasi?Prestasi PHP: Adakah mungkin untuk mengoptimumkan aplikasi?May 14, 2025 am 12:04 AM

Ya, OptimizingaphpapplicationIspossibleandessential.1) pelaksanaanCachingUsingAputeDeducedeDataBaseload.2) OptimisedataTabaseseseshithindexing, eficientqueries, danConnectionPooling.3) EnhancecodeWithBuilt-Infungsi, EveringGlobalVariables

Pengoptimuman Prestasi PHP: Panduan TerbaikPengoptimuman Prestasi PHP: Panduan TerbaikMay 14, 2025 am 12:02 AM

ThekeystrategiestoSignificLantantlyboostphpapplicationperformanceare: 1) useopcodecachinglikLikeopcachetoreduceExecutionTime, 2) OptimizedataBaseInteractionsWithPreparedStatementsandProperindexing, 3) ConfigureWebserverserverLikenginxWithPmforbetterShipter.

Kontena Suntikan Ketergantungan PHP: Permulaan yang cepatKontena Suntikan Ketergantungan PHP: Permulaan yang cepatMay 13, 2025 am 12:11 AM

AphpdependencyInjectionContainerisatoLthatMatagesClassDependencies, EnhancingCodeModularity, Testability, andMaintainability.itactsascentralHubforcreatingandinjectingdependencies, sheReducingTightCouplingandeaseaseaseSunittesting.

Suntikan ketergantungan berbanding pencari perkhidmatan di phpSuntikan ketergantungan berbanding pencari perkhidmatan di phpMay 13, 2025 am 12:10 AM

Pilih DependencyInjection (DI) Untuk aplikasi besar, servicelocator sesuai untuk projek kecil atau prototaip. 1) DI meningkatkan kesesuaian dan modulariti kod melalui suntikan pembina. 2) ServiceLocator memperoleh perkhidmatan melalui pendaftaran pusat, yang mudah tetapi boleh menyebabkan peningkatan gandingan kod.

Strategi Pengoptimuman Prestasi PHP.Strategi Pengoptimuman Prestasi PHP.May 13, 2025 am 12:06 AM

Phpapplicationscanbeoptimizedforspeedandeficiencyby: 1) enablingopcacheinphp.ini, 2) menggunakan preparedSwithpdofordatabasequeries, 3) menggantikanloopswitharray_filterandarray_mapfordataprocessing, 4) configuringnginywinginywinyvinyvinginy

Pengesahan E -mel PHP: Memastikan e -mel dihantar dengan betulPengesahan E -mel PHP: Memastikan e -mel dihantar dengan betulMay 13, 2025 am 12:06 AM

PhpeMailvalidationInvolvestHreesteps: 1) formatValidationingRegularExpressionStocheckTheemailFormat; 2) dnsvalidationtoensurethedomainhasavalidmxrecord;

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual