迷你lua 5.1参考手册收藏

 迷你lua 5.1参考手册收藏

新一篇: LUA复用代码 | 旧一篇: LUA杂项

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
关键字:
  and break do else elseif end false for function if in local nil not or repeat return then true until while
使用变量不需要声明,总是全局变量,除非加"local"。local的作用域是在最里层的end和其配对的关键字之间。全局变量的作用域是整个程序。大小写相关。定义一个变量的方法就是赋值"="操作。变量类型,可以用type()函数来检查:
  Nil  空值,所有没有使用过的变量都是nil。nil既是值又是类型。变量清除直接给变量赋以nil值。
  Boolean  布尔值true 和 false。只有false和nil才被计算为false,而所有任何其它类型的值,都是true。比如0,空串等等,都是true。
  Number  数值,相当于C语言的double实数如:4 0.4 4.57e-3 0.3e12 5e+20
  Userdata  可以是宿主的任意数据类型,常用的有Struct和指针。
  Thread 线程类型,在Lua中没有真正的线程,将一个函数分成几部份运行。
  String  字符串,可以包含'/0'字符,可以定义很长的字符串。用双引号或单引号引用单行,"[["和"]]"引用多行字符串。新版支持"[==["和"]==]"多层标记,=号个数为层数。严格按层数匹配。支持一些转义字符:
/a铃/b退格/f换页/n换行/r回车/t制表符/v垂直制表//反斜杠/"双引号/'单引号/[左中括号/]右中括号
  Table  关系表类型,功能强大。可以用除了nil任意类型的值来作数组的索引和内容。
  Table的定义:T1 = {}  T1[1]=10  T1["John"]={Age=27, Gender="Male"}
    这一句相当于T1["John"]["Gender"]="Male"
    索引是字符串时可以简写成:T1.John.Gender="Male"或T1.John={Age=27, Gender="Male"}
    第一,所有元素之间,总是用逗号","隔开;
    第二,所有索引值都需要用"["和"]"括起来;如果是字符串,还可以去掉引号和中括号;
    第三,如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编;
    T1=
    {
      10,  -- 相当于 [1] = 10
      [100] = 40,
      John=  -- 如果你原意,你还可以写成:["John"] =
      {
        Age=27,   -- 如果你原意,你还可以写成:["Age"] =27
        Gender=Male   -- 如果你原意,你还可以写成:["Gender"] ="Male"
      },
      20  -- 相当于 [2] = 20
    }
  Function  函数也是一种类型,也就是说所有的函数本身就是一个变量。
函数的定义:function add(a,b) return a+b end 相当于add = function (a,b) return a+b end
如果函数只有一个参数,可以省略括号。
return语言一定要写在end之前。在中间放上return,写成:do return end。
函数可以接受可变参数个数,用"..."来定义function sum (a,b,...)
如 果想取得...所代表的参数,5.0版本可以在函数中访问arg局部变量(表类型)得到。如 sum(1,2,3,4)则,a = 1, b = 2, arg = {3, 4},在5.1版本多了一个...变量(实际就是参数列表),区别只在于arg和...共同存在的情况,...会使arg变nil。
可以同时返回多个结果,比如:function s() return 1,2,3,4 end
    a,b,c,d = s()  -- 此时,a = 1, b = 2, c = 3, d = 4
使用面向对象编程:
    t = { Age = 27, add = function(self, n) self.Age = self.Age+n end }
    print(t.Age)  -- 27
    t.add(t, 10) 可以简写成:t:add(10)
    print(t.Age)  -- 37

单行注释"--"。只要--后面第一个字符不是多行字符串引用符[[,即为多行注释。
语句之间可以用分号";"隔开,也可以用空白隔开。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值