Lua——table(表)的使用
文章目錄
- 一、基本知識
- 二、table的構造
- 1.使用步驟
- 2.示例演示
- 三、table的操作
- 1.操作語法
- 2.示例演示
一、基本知識
(1)table 是 Lua 的一種數據結構用來幫助我們創建不同的數據類型,如:數組、字典等。
(2)Lua table 使用關聯型數組,可以用任意類型的值來作數組的索引,但這個值不能是 nil。
(3)Lua table 是不固定大小的,你可以根據自己需要進行擴容。
(4)Lua也是通過table來解決模塊、包和對象的。 例如string.format表示使用"format"來索引table string。
說白了,table的存儲方式和使用方式就類似是key-value對。
二、table的構造
1.使用步驟
構造器是創建和初始化表的表達式。表是Lua特有的功能強大的東西。最簡單的構造函數是{},用來創建一個空表。可以直接初始化數組:
-- 初始化表 mytable = {}-- 指定值 mytable[1]= "Lua"-- 移除引用 mytable = nil -- lua 垃圾回收會釋放內存2.示例演示
當我們為 table1 設置元素,然后將 table1賦值給 table2,則 table1 與table2都指向同一個內存。如果table1設置為 nil ,則 table2同樣能訪問 table1的元素。如果沒有指定的變量指定這個內存,Lua的垃圾回收機制會清理相對應的內存。
--初始化table1 table1 = {} print("table1的類型是:",type(table1))table1["age"] = 22 table1["name"] = "xiaomeng" print("table1中的age數據類型為:",type(table1["age"]),"table1中的name數據類型為:",type(table1["name"])) print("table1中的age為:",table1["age"],"table1中的name為:",table1["name"])--table2和table1共享數據 table2 = table1 table2["age"] = 19 table2["name"] = "xiaohua" print("table1中的age數據類型為:",type(table1["age"]),"table1中的name數據類型為:",type(table1["name"])) print("table1中的age被改為:",table1["age"],"table1中的name被改為:",table1["name"])--由于tbale1和table2共享數據,所以table2的操作table1受影響 table2[1]=3 print(table1[1])table1 = nil--釋放table1變量,但是table2仍然可以訪問 print("table2中的age和name數據分別為:",table2["age"],table2["name"])table1 = nil--釋放table2變量 --Lua垃圾回收會釋放內存運行結果:
三、table的操作
1.操作語法
2.示例演示
(1)連接演示
注意sep是分隔符,start和end不寫的話,就默認從頭連接到尾。
運行結果:
(2)插入和刪除演示
pos可選,不寫的話,默認在尾部插入
運行結果:
(3)排序演示
運行結果:
運行結果:
當內容中既有number類型又有string類型的元素時,無法進行排序。
對于table.maxn函數,Lua5.0版本后無法使用此函數。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Lua——table(表)的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lua——基本语法知识,从hello w
- 下一篇: Lua——循环和流程控制(if,for,