Lua中的Table其实就是一个Key Value的structure

haoel = {name="ChenHao", age=, handsome=True}

-table的CRUD操作

haoel.website="https://coolshell.cn/"
local age = haoel.age
haoel.handsome = false
haoel.name=nil

看上去像c++的struct,但是其实name, age, handsome, website都是key

还可以这样定义Table

t = {[]=, ['name']="ChenHao", [3.14]="PI"}

可以这样访问t[20],t[“name”], t[3.14]

再比如数组

arr = {,,,,}

实际等价于

arr = {[]=, []=, []=, []=, []=}

也可以定义成不同类型的数组

arr = {"string", , "haoel", function() print("coolshell.cn") end}

其中的这个函数可以这么调用arr[4]()

*注意:Lua的下标不是从0开始的,而是从1开始的

for i=, #arr do
print(arr[i])
end

上面#arr的意思就是arr的长度

-Lua把所有的全局变量放到了一个叫做_G的table里

可以用如下的方法访问一个名为globalVar的全局变量

_G.globalVar
_G["globalVar"]

-iterate一个table

for k, v in pairs(t) do
print(k, v)
end

[Lua快速了解一下]Lua的Table的更多相关文章

  1. [Lua快速了解一下]Lua运行

    -Lua的Hello World print("Hello World") 分号可选 -类似python,进入Lua后再shell中打命令执行语句也可 > print(&qu ...

  2. [Lua快速了解一下]Lua的OOP

    __index(a, b) 对应表达式 a.b 上面我们看到有__index这个重载,这个东西主要是重载了find key的操作.这波操作可以让Lua变得有点面向对象的感觉,让其有点像Javascri ...

  3. [Lua快速了解一下]Lua的MetaTable和MetaMethod

    MetaTable和MetaMethod是Lua中的重要的语法,MetaTable主要是用来做一些类似于C++重载操作符式的功能. 两个分数 fraction_a = {numerator=, den ...

  4. [Lua快速了解一下]Lua的model

    我们可以直接使用require(“model_name”)来载入别的lua文件,文件的后缀是.lua.载入的时候就直接执行那个文件了.比如: 我们有一个hello.lua的文件: print(&quo ...

  5. [Lua快速了解一下]Lua的控制语句

    -Lua中没有++或者--的骚操作 -while loop sum = num = do sum = sum + num num = num + end print("sum =" ...

  6. [Lua快速了解一下]Lua的语法

    -注释 -- 两个减号是行注释 -块注释 --[[ 这是块注释 这是块注释 --]] -变量 Lua的数字只有double型,64bits, Lua的字符串string支持双引号或者单引号 以下例子会 ...

  7. [Lua快速了解一下]Lua的函数

    -recurrsive function fib(n) end ) + fib(n - ) end -closure 示例一 function newCounter() return function ...

  8. lua中,两种json和table互转方法的效率比较

    lua中json和table的互转,是我们在平时开发过程中经常用到的.比如: 在用lua编写的服务器中,如果客户端发送json格式的数据,那么在lua处理业务逻辑的时候,必然需要转换成lua自己的数据 ...

  9. (转) Lua使用心得一 LUA和VC整合

    这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...

随机推荐

  1. 关于操作 ASP.NET Web API的实例

    WCF的野心造成了它的庞大复杂,HTTP的单纯造就了它的简单优美.为了实现分布式Web应用,我们不得不将两者凑合在一起 —— WCF服务以HTTP绑定宿主于IIS. 于是有了让人晕头转向的配置.让人郁 ...

  2. C# 生成序号不足补0

    int Num=13 var code =Num.ToString().PadLeft(4, '0'); code:0013

  3. plsql中的光标

    操作oracle数据库效率最高的语言就是plsql程序,故而把访问数据库的代码写成plsql的执行效率要高于java,c ,c++等代码

  4. 认识Excel并创建一个excel(网址:http://poi.apache.org/)

    需要导入的jar包: package com.huawei.excel; import java.io.FileOutputStream; import org.apache.poi.hssf.use ...

  5. beego 中文教程

    https://www.kancloud.cn/hello123/beego/126087

  6. Unmarshaller解析xml文件

    参考地址:http://linbulu.iteye.com/blog/2295919 Girl.xml文件 <?xml version="1.0" encoding=&quo ...

  7. nginx 多域名配置,采用多配置文件的方式

    nginx 中多域名配置,目前采用多配置文件的方式. 配置过程比较简单. 首先在 nginx 目录下创建子目录 vhosts . 在 vhosts 目录中创建对应域名的配置文件.如有域名 898hi. ...

  8. VUE+WebPack前端游戏设计:实现物体的拖拽动态特效

  9. c++ 中介者模式(mediator)

    中介者模式:用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互.中介者模式的例子很多,大到联合国安理会,小到房屋中介.下面以 ...

  10. 以女朋友为例讲解 TCP/IP 三次握手与四次挥手

    背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声 ...