Lua语言基础

来源:互联网 发布:极乐净土相机数据 编辑:程序博客网 时间:2024/05/16 04:37

1、变量:

使用local关键字修饰的变量是局部变量,没有local修饰的变量是全局变量。

2、数据类型:

数值类型(顾名思义,就是数),布尔类型(真和假),字符串类型(字符,和字符串),自定义类型(lua利用自定义类型与C进行交互),函数类型(函数可以赋值给一个变量,也可以作为参数传递给其他的函数),线程类型(每个线程拥有自己独立的栈,局部变量,指令指针),表类型({}表示,实现一组关联数组类型),nil类型(没有任何有效值的情况)。

3、type函数:

返回已定变量或数值的类型。例:print(type(100)) ----number,print(type(true))   -------boolean。

4、逻辑运算符

a and b         -- 如果a 为false,则返回a,否则返回b 

 a or  b         -- 如果a 为true,则返回a,否则返回b 

一个很实用的技巧:如果x 为false 或者nil 则给x 赋初始值v 

 x = x  or v   等价于  if not x then  x = v end 

and 的优先级比or高。C语言中的三元运算符a ? b : c在Lua中可以这样实现:(a and b) or c

5、repeat循环语句:

[initialization]

repeat

--body

[iteration]

until termination

首先执行循环,再判断条件。

6、表类型:

表本身是一种基于“键值对”字典结构,表类型可以描述数组、链表、队列和字典(或Map)等。

    6.1、字典:(key-value)

     s={id="100",name="Tony",age=18}

     for k,v in pairs(s) do

               print(k..":"..v)

    end

字典结构的table遍历,用pairs,不用ipairs。ipairs函数返回数组索引(i)和值(v)。

   6.2、数组:

    local s={"张三","李四","王五"}

    for i=1,#s do

          print(i..":"..s[i])

    end

#s是获取数组s的长度。

   6.3、字符串:

    string.sub(s,n,m) 截取从第n个字符到第m个字符之间的字符串。

   string.lower(s)   -----转小写

   string.upper(s)  -----转大写

   string.rep(s,3)    -----重复3次

   string.reverse(s) ----翻转

  local i,j= string.find(s,"hello")  --在s中查找hello,返回值i,j为初始位置与结束位置。

  string.format(" ",...)   ----格式化输出

7、函数

可以有全局函数,局部函数,函数还可以作为一个值传递。

8、闭包函数

   Lua中,支持函数类型,能够将函数作出参数或返回值传递。支持函数嵌套。满足闭包函数的条件。

   

 

 

0 0
原创粉丝点击