国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

舉例講解Lua中的Table數據結構

2024-07-21 23:04:56
字體:
來源:轉載
供稿:網友

文中-- 兩個橫線開始單行的注釋,--[[加上兩個[和]表示多行的注釋--]]。    

 

復制代碼 代碼如下:
-- Table = Lua唯一的數據結構;
--         它們是關聯數組。
-- 類似于PHP的數組或者js的對象,
-- 它們是哈希查找表(dict),也可以按list去使用。

 

 

復制代碼 代碼如下:
-- 按字典/map的方式使用Table:

 

-- Dict的迭代默認使用string類型的key:
t = {key1 = 'value1', key2 = false}

 

 

復制代碼 代碼如下:
-- String的key可以像js那樣用點去引用:
print(t.key1)  -- 打印 'value1'.
t.newKey = {}  -- 添加新的 key/value 對。
t.key2 = nil   -- 從table刪除 key2。

 

 

復制代碼 代碼如下:
-- 使用任何非nil的值作為key:
u = {['@!#'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
print(u[6.28])  -- 打印 "tau"

 

 

復制代碼 代碼如下:
-- 對于數字和字符串的key是按照值來匹配的,但是對于table則是按照id來匹配。
a = u['@!#']  -- 現在 a = 'qbert'.
b = u[{}]     -- 我們期待的是 1729,  但是得到的是nil:
-- b = nil ,因為沒有找到。
-- 之所以沒找到,是因為我們用的key與保存數據時用的不是同一個對象。
-- 所以字符串和數字是可用性更好的key。

 

 

復制代碼 代碼如下:
-- 只需要一個table參數的函數調用不需要括號:
function h(x) print(x.key1) end
h{key1 = 'Sonmi~451'}  -- 打印'Sonmi~451'.

 

 

復制代碼 代碼如下:
for key, val in pairs(u) do  -- Table 的遍歷.
  print(key, val)
end

 

 

復制代碼 代碼如下:
-- _G 是一個特殊的table,用于保存所有的全局變量
print(_G['_G'] == _G)  -- 打印'true'.

 

 

復制代碼 代碼如下:
-- 按list/array的方式使用:

 

-- List 的迭代方式隱含會添加int的key:
v = {'value1', 'value2', 1.21, 'gigawatts'}
for i = 1, #v do  -- #v 是list的size
  print(v[i])  -- 索引從 1 開始!! 太瘋狂了!
end
-- 'list'并非真正的類型,v 還是一個table,
-- 只不過它有連續的整數作為key,可以像list那樣去使用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上蔡县| 布尔津县| 桃园市| 梓潼县| 绥棱县| 富锦市| 平顶山市| 虹口区| 定襄县| 麦盖提县| 阿荣旗| 广南县| 牡丹江市| 乐都县| 湖州市| 虞城县| 文登市| 余姚市| 文登市| 萝北县| 通山县| 怀仁县| 休宁县| 津南区| 武山县| 博湖县| 临夏县| 万盛区| 霍山县| 汉中市| 济宁市| 赞皇县| 庆安县| 五常市| 东阿县| 绵竹市| 惠水县| 乐业县| 广元市| 镇赉县| 安义县|