Lua table - 看似简单的Lua表,竟然还有这么多没有留意的点

本文详细介绍了Lua中的table,它既像数组又像Java的Map,支持任意类型的键值对。内容包括table的定义、访问方式、长度计算,以及全局变量table中的table.insert()和table.concat()函数的用法。通过实例展示了table遍历、长度计算的注意事项,帮助读者深入理解Lua table的精髓。
摘要由CSDN通过智能技术生成

fe4f994e59c213da8112616efa798ec4.png

table就是Lua语言提供的数组,但是不同于Java、C++等语言,Lua table不仅是数组,还可以是Java语言中的Map,也就是table也可以存储键值对。这一点和PHP语言相似,Lua中的数组也当作键值对来处理,数组元素的键是数字。因为把 Lua 中的 table 叫作表更合适。

table 的定义

table用花括号来定义,元素用逗号隔开,最后一个元素后可以加逗号,也可以不加。table的键和值都可以是任意类型(注意,键也可以是任意类型)。

-- 定义空table
local empty_table = {}
-- 定义一个字符串数组
local array = {'daemon', 'coder'}
-- 数组元素也可以多种类型混合
local mix_array = {'Nice', 666}
-- 元素是数组的数组,可以用这种方式定义多维数组。
local matrix = {
    {11, 12, 13, 14},
    {21, 22, 23, 24},
    {31, 32, 33, 34, 35, 36},
}

定义一个键值对形式的数组,键和值用等号隔开,等号左侧是键,右侧是值。注意字符串形式的key不需要像字符串定义一样用引号:

local map = {name = 'DaemonCoder', url = 'daemoncoder.com'}
--[[
下面这样定义会有语法错误:
local map = {'name' = 'DaemonCoder', 'url' = 'daemoncoder.com'}
]]

如果不得不用引号包起来时(比如字符串中包含了等号等特殊符号),把键用方括号括起来,同时键值也要用字符串的定义格式加引号。

local m
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值