Lua 基础

lua w7下载地址 http://pan.baidu.com/s/1o6skDoI

1. #tablename 获取表的长度

受key值得约束,不指定key默认是按照1,2,3顺序默认指定

2. 全局变量也是通过table进行管理的 table名_G
    访问方式:_G.globavar or  _G["globavar"]

3. table遍历

  a.  

    for key, value in pairs(tbtest) do

    end

    eg:ta = {[1]=1, [2]=2, [3]=3, [4]=4}

  for key, value in pairs(ta) do

        print(value)

       end

  输出:1 2 4 3

    备注:该循环为泛型循环,pairs lua用自己的迭代器去遍历了ta(哈希map中的元素),key是无序的(最可靠的)

  b.

    for key, value in ipairs(tbtest) do

    end

    eg:ta = {[1]=1, [2]=2, [3]=3, [4]=4}

  for key, value in ipairs(ta) do

        print(value)

       end

  输出:1 2 3 4

      ta = {[1]=1, [2]=2, [3]=3, [5]=4}

  for key, value in ipairs(ta) do

        print(value)

       end

  输出:1 2 3

      ta = {[2]=1, [2]=2, [3]=3, [5]=4}

  for key, value in ipairs(ta) do

        print(value)

       end

  输出:

      备注:该循环为泛型循环,ipairs lua用自己的迭代器去遍历了ta(哈希map中的元素),key必须是有序的

  

  c. for i=1, #(tbtest) do

       XXX

   end

  d. for i=1, table.maxn(tbtest) do

        XXX

    end

4. table.maxn 获取table中key的最大值

5. table 中存储table

  注:里面的table key为table名value为地址

6. 返回

赋值:name, age, bGay = "haoel", 37, false, "[email protected]"

  函数返回:

    function getUserInfo(id)

        print(id)

      return "haoel", 37, "[email protected]", "http://coolshell.cn"

    end

 

    name, age, email, website, bGay = getUserInfo()

  注:优先匹配,匹配不到就nil

参考地址:http://coolshell.cn/articles/10739.html

时间: 2024-09-12 13:04:16

Lua 基础的相关文章

Lua基础 coroutine —— Lua的多线程编程

Lua的coroutine 跟thread 的概念比较相似,但是也不完全相同.一个multi-thread的程序,可以同时有多个thread 在运行,但是一个multi-coroutines的程序,同一时间只能有一个coroutine 在运行,而且当前正在运行的coroutine 只有在被显式地要求挂起时,才会挂起.Lua的coroutine 是一个强大的概念,尽管它的几个主要应用都比较复杂. 1. Coroutine 基础 Lua将coroutine相关的所有函数封装在表coroutine 中

Lua基础——赋值语句、表达式、流程控制

赋值语句 注释,用(--)来表示 定义,lua中没有定义(申明数据类型),它是通过赋值来确定其数据类型的. 赋值,是改变一个变量的值和改变表域的最基本的方法. a = "hello" .. "world" Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量.a, b = 10, 2*x <--> a=10; b=2*x 遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换

Lua基础(二)——表

表 a = { } b = { x = 1, ["hello, "] = "world!" } a.astring = "ni, hao!" a[1] = 100 a["a table"] = b function foo() end function bar() end a[foo] = bar --分别穷举表a和b for k, v in pairs(a) do print(k, "=>", v)

lua基础

lua基础 1.开发环境IDE及语法高亮 mac上安装lua brew install lua (1)sublime Text 2 新建lua.sublime-build的规则 (mac) { "cmd":["/usr/local/bin/lua","$file"], "file_regex":"^(...*?):([0-9]*):?([0-9]*)", "selector":"

CC3.2+Lua(2) ——Lua基础语法1

[唠叨] 首先,我已经默认你已经学过至少一门宿主语言了(C++.Java等),然后转向学习Lua. 因为51cto中对于Lua语言没有代码高亮,为了让代码看起来丰富多彩,我只好用截图了. 本节内容仅介绍Lua的简单基础语法,更多用法请百度:Lua中文教程 . Lua参考手册 . [学习感慨]     > 语句末尾不需要加分号 ;      > 语句块不是用花括号 { } , 而是 do 语句块 end 表示语句块的开始和结束.         而 花括号 {} 表示的为一个 表结构 .    

Lua 基础简明教程

注释 写一个程序,总是少不了注释的. 在Lua中,你可以使用单行注释和多行注释. 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止.相当于C++语言中的"//". 多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止.这种注释相当于C语言中的"/**/".在注释当中,"[["和"]]"是可以嵌套的. Lua 编程 经典的"He

Lua 基础:调用函数时用点号还是用冒号

本文转载于:http://www.benmutou.com/archives/1789 1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(100, 20); mSprite:setPosition(100, 20); 对于初次接触Lua的朋友来说,这简直就是噩梦,为嘛函数的调用有两种形式,是让我们随便挑的意思吗? 这两种形式是有区别的,区别很大,但只有一个. 不过,暂时不解释,后面再介绍. 2.最简单的类 我们先来看看

项目中lua(基础)

关于项目中lua任务(某些没弄懂,但lua上耗费时间有点长了不看了) 这段时间看了lua语法和项目中lua应用 1.在lua中注册c库,在lua5.2中好像都是注册c库,相当于在lua中定义一个table,key是函数名字,value是函数指针 m_spLuaState->RegLib("game", funcs); 2.加载项目中所有lua并执行 刚开始不知道那个dofile具有执行lua的功能,结果是返回0表示成功,执行lua就是执行其中定义的一些函数和全局变量(普通变量,表

lua基础【五】I/O文件操作

--[[ lua文件操作相关I/O ]]-- --可以规定在特定目录下打开一个文件,如果该文件不存在的话, --lua会帮助我们在你规定的目录下创建这个文件,前提是该目录要存在 --[[ 同时我们应该掌握写入文件的模式: 对以下写入模式进行说明: "r" 模式:读模式(该模式下,只允许对文件进行读取内容,不容许写入) "w":写模式(允许对文件进行写入,上次的文件内容会因为本次的写入而被替换掉) "a":添加模式 "w+":更

Lua学习----Lua基础数据类型

前言 Lua有6中数据类型,分别是nil(空).boolean(布尔).number(数字).string(字符).table(表).function(函数) 在Lua中可以使用type函数来返回一个值或者变量所属的类型,如: print(type("helle world")) -->output:string print(type(print)) -->output:function print(type(true)) -->output:boolean 1.ni