发新帖

[lua简介]lua基础语法快速使用

[复制链接]
8723 6
lua这门语言和平时的C,VB类似,但又有很大不同,为了让大家快速可以上手开发,本人写了这篇简短的教程,将一些基础问题讲解,使得大家不需要过多了解lua中复杂的机制,如表、元表等这些概念,就可以进行一些简单的开发。当然,此前你最好有C语言经验
   本文编写者:七少月
*******************************************************************************
1.lua的数据类型
  空值(nil),布尔(boolean),数字(number),字符串(string),函数(function),用户数据(userdata),线程(thread),表(table)
  可见,lua和一般的C语言等的不同,C语言等主流语言数据类型一般都是数据值的类型,而不会包含函数,线程这些。
2.lua的变量
  lua的变量也是和C等语言,有截然不同概念。lua是一门动态语言,所以其变量没有定义变量数据类型(如 int a)这个行为,所有变量在没有赋值时都是空值型,其变量类型为赋值时相应进行改变。lua对大小写敏感,这和C是一样的。lua的变量分为全局变量和局域变量(表域可以先不去学习)。凡是没有使用local来定义变量的,都默认是全局变量;反之为局部变量。
3.lua的赋值语句
  赋值语句比较简单,也比较相似于C语言,但它可以变量连续赋值,且相互并不影响。
  local i
  i =3
  local a[]
  i,a[i] = 4,5
  最终,i =4 ,而a[3]=5,可以看出,a[i]是在i=4时之前进行数组中i的赋值
4.lua的控制结构(既可以竖式,也可以横式,为了更加易懂,下面采用竖式)
条件结构
    if..then..end语句
       if 条件 then          if 条件 then
          语句组1                语句组1
       else                  elseif 条件
          语句组2                语句组2
       end                   end
循环结构
  
   1.while...do..end语句
    while 条件 do
       语句组
    end
   2.repeat...until语句
     repeat
        语句组
     until 条件
   3.for...do....end语句
      for i =e1,e2,e3 do
         语句组
      end
         
      
       for语句中,类比C语言,有三个隐形变量,也就是var,limit,step,也就是初始值,终值和步长,步长默认是1.实际等同于以下的whlie语句。
     do
       local var,limit,step = .......
       if not (var and limit and step) then error() end
       while (var,limit,step满足的条件) do
          语句组
       end
     end
    4.goto语句,和C类似,也是goto label1,也就是goto到标签的用法,但不建议使用,goto往往是死循环。
    5.break语句,和C类似,跳出循环
    6.return语句,和C类似,但只能用在结束的最后一句,也可以内嵌在块中,但依然要是内嵌块中的最后一句,如do return end语句
5.lua的函数定义与调用
  lua的函数定义与C也是类似的,使用return语句返回结果,如果没有return则不返回任何结果,如果函数中不带参数且不返回值,就相当于VB中的过程,C中也没有过程这个概念。
  funtion add(a,b)
     return a+b
  end
  
  在调用时,可以为其形参给予实参,如add(3,4)。

6.lua的转义符号
  lua的转义符号包含C中的转义符号,如\n表示换行符号。
7.lua的运算符
  lua的运算符和C类似,但也有不同
算术运算符:+ - * \ % ^
强制转换:这里lua和C稍有不同,原因还在前面说过的,lua没有事先定义变量类型的概念,数据类型中也只有一个数字类型,而没有C中浮点数,整型数这些概念。它支持字符串与数字的自动转换。当遇到需要转换时,编译器会自动尝试。当然,字符串的控制最好使用函数库中的string.format()
关系运算符:== < > <= >= ~=  最后一个是不等于,与C的!=不等于不同
逻辑运算符:not and or
字符串连接符: ..
优先级:lua的优先级和C也是不同,不根据运算符是算术还是关系来判断优先级,而根据操作符来判断,具体请看官方手册,总体上还是逻辑运算符>关系运算符>算术运算符
8.lua的字符串与注释
  lua的字符串也是使用双引号,如print("我的第一个lua程序"),而注释上,可以使用--,其类似与C的//
8.lua的函数库
  lua有很多自带函数库,请查阅官方手册
9.lua的其他
  lua中还有很多概念,如表,元表,键值,表域,元方法,函数封包等等,这些与C的距离较远,我们可以在初学时不去理会。这里简单介绍下元方法的使用,通常元方法都是_a()样式,如op1_len,其意思就是调用长度的元方法。

举报 使用道具

回复

精彩评论6

JackIO    发表于 2015-5-12 09:25:02 | 显示全部楼层
很不错的资料,谢谢楼主的无私分享。

举报 使用道具

回复 支持 反对
tomcnc    发表于 2015-5-13 10:30:06 | 显示全部楼层
非常不错的教程。短小精干!

举报 使用道具

回复 支持 反对
rex_android    发表于 2015-5-13 14:11:29 | 显示全部楼层
又学点,稍微了解一下

举报 使用道具

回复 支持 反对
casogrta    发表于 2015-5-15 17:00:28 | 显示全部楼层
朕已閱! 感謝LZ分享!!

举报 使用道具

回复 支持 反对
想念成疾。    发表于 2015-7-29 16:17:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报 使用道具

回复 支持 反对
抬头望未来    发表于 2015-7-31 14:20:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表