如何在 Lua 表格中獲取條目數量?


雖然有很多函式和運算子可以用來獲取 Lua 中特定表格中整數條目的數量,但沒有定義的方法或函式適用於包含非同質資料型別的表格。

讓我們考慮一個簡單的表格,其中儲存了整數值,然後我們將使用兩種最常見的方法來查詢該表格中的條目數量。

示例

請考慮以下示例 -

 線上演示

t = {}
t[1] = 1
t[2] = 2
t[3] = 3
t[4] = 4
print(#t)

輸出

4

但是,讓我們考慮這樣一種情況:表格中包含非同質資料,而不是同質資料,在這種情況下,# 運算子將導致不一致。

示例

請考慮以下示例 -

 線上演示

t = {}
t["yes"] = 1
t[1] = 1
t[2] = 2
t[3] = 3
print(#t)

輸出

3

我們可以清楚地看到,輸出導致了不一致,因此我們別無選擇,只能編寫我們自己的函式來計算表格中存在的條目數量。

示例

請考慮以下程式碼 -

 線上演示

t = {}
t["yes"] = 1
t[1] = 1
t[2] = 2
t[3] = 3
print(#t)
function tablelength(T)
   local count = 0
   for _ in pairs(T) do count = count + 1 end
   return count
end
print(tablelength(t))

輸出

3
4

更新於: 2021-07-19

3K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告