Lua打印table

一、基本打印table

--定義一個table
local myTable = {key1 = "value1", key2 = "value2", key3 = "value3"}
--打印table
print(myTable)

--輸出:table: 0x7f99f0404670

默認情況下,通過print打印出來的table僅顯示它在內存中的地址。需要通過其他方式將table內容打印出來。

二、使用pairs函數打印table

local myTable = {key1 = "value1", key2 = "value2", key3 = "value3"}

for key, value in pairs(myTable) do
    print(key, value)
end

--輸出:
--key1    value1
--key2    value2
--key3    value3

使用pairs函數可以遍歷table中的所有元素,輸出每個元素對應的key和value。

三、使用ipairs函數打印數組型table

local myTable = {"value1", "value2", "value3"}

for index, value in ipairs(myTable) do
    print(index, value)
end

--輸出:
--1       value1
--2       value2
--3       value3

使用ipairs函數逐一打印一個數組型table中的元素。注意:ipairs只輸出連續下標的元素。

四、使用table.concat函數打印table

local myTable = {"value1", "value2", "value3"}

local str = table.concat(myTable, ", ")
print(str)

--輸出:"value1, value2, value3"

如果需要將table中的元素拼接成一個字符串,可以使用table.concat函數。

五、美化table打印結果

local myTable = {
    key1 = "value1",
    key2 = "value2",
    key3 = {
        subkey1 = "subvalue1",
        subkey2 = "subvalue2"
    }
}

function printTable(table, level)
    level = level or 1
    local indent = ""
    for i = 1, level do
        indent = indent.."  "
    end

    if level > 1 then
        print(indent.."{")
    end

    for k, v in pairs(table) do
        if type(v) == "table" then
            print(indent..k.." = {")
            printTable(v, level + 1)
            print(indent.."},")
        else
            local content = string.format("%s%s = %s,", indent, tostring(k), tostring(v))
            print(content)
        end
    end

    if level > 1 then
        print(indent.."}")
    end
end

printTable(myTable)

--輸出:
--{
--  key1 = value1,
--  key2 = value2,
--  key3 = {
--    subkey1 = subvalue1,
--    subkey2 = subvalue2,
--  },
--}

美化table打印結果可以使輸出更易讀。可以自定義一個函數,遞歸調用打印table中的所有元素,並加入縮進。

總結

在Lua中,可以通過多種方式打印table。通常使用pairs函數遍歷table中的元素,使用ipairs函數遍曆數組型table中的元素。如果需要將table中的元素拼接成一個字符串,可以使用table.concat函數。如果需要美化table打印結果,可以自定義一個遞歸函數。

原創文章,作者:VGNWU,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333388.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VGNWU的頭像VGNWU
上一篇 2025-02-01 13:34
下一篇 2025-02-01 13:34

相關推薦

  • LuaEP:一款強大的Lua開發框架

    LuaEP是一個集成了可以快速開發web應用程序所需的組件的Lua開發框架。它以Lua語言為基礎,提供了許多常用接口和庫,使得開發者不需要從頭開始編寫web應用程序,而是專註於業務…

    編程 2025-04-28
  • Oracle Table函數詳解

    一、概覽 Table函數是Oracle中一種高級SQL操作,它可以將複雜的表達式轉換成虛擬表來供查詢使用。使用Table函數,可以作為輸入多個行,返回一張臨時表。Table函數可以…

    編程 2025-04-25
  • Lua math.floor的詳細闡述

    一、floor函數的基本介紹 math.floor函數在Lua中屬於基本的數學函數,該函數會返回一個不大於參數的最大整數。如果一個數字包含小數部分,那麼math.floor函數將舍…

    編程 2025-04-25
  • Lua 協程的多方面詳解

    一、什麼是 Lua 協程? Lua 協程是一種輕量級的線程,可以在運行時暫停和恢復執行。不同於操作系統級別的線程,Lua 協程不需要進行上下文切換,也不會佔用過多的系統資源,因此它…

    編程 2025-04-24
  • 詳解Lua table.sort函數

    一、排序基礎知識 排序是數據處理中常見的操作,將一些數據按照一定的規則進行排序。在計算機科學中,排序算法是一類經典的算法問題。 排序算法可以分為內部排序和外部排序,內部排序是指所有…

    編程 2025-04-22
  • 使用Vue修改Table的行數據

    一、創建一個Table組件 首先,我們需要創建一個Table組件,該組件將包含多個表格行。我們可以使用props向組件中傳遞一個表格數據數組,然後在組件中循環遍歷表格行。 <…

    編程 2025-04-22
  • layui.table詳解

    一、從layui.table.cache取第一條數據 在使用layui.table渲染表格時,如果我們需要獲取表格中的數據,可以使用layui.table.cache函數來獲取。下…

    編程 2025-04-22
  • 使用s-table組件優化網頁表格展示

    一、s-table組件概述 s-table是element-ui中的一個表格組件,使用簡便、性能優良,可適用於各種場景。其中,s-table組件提供了自定義表頭、表格大小、表格斑馬…

    編程 2025-04-13
  • 詳解table表頭固定

    一、CSS實現table表頭固定 在table標籤上加入以下CSS,即可實現table表頭固定: table { width: 100%; border-collapse: col…

    編程 2025-04-12
  • HTML Table居中詳解

    一、Table整體居中 如果想讓整個Table居中,需要對Table標籤進行樣式設置。可以通過以下幾種方式實現: 1、使用margin: 0 auto;進行居中: <tabl…

    編程 2025-04-12

發表回復

登錄後才能評論