zoukankan      html  css  js  c++  java
  • lua读书笔记(@WhiteTaken)

    接下来把我所看的《Lua程序设计》中介绍lua的内容,时时的记录下来。当做一个读书笔记吧。

    先说一下怎样直接运行lua文件吧,windows cmd进入相应的文件夹,然后输入lua,出现版本信息,然后dofile("a.lua"),可以运行自己创建的lua脚本。退出lua交互控制,可用os.exit()。交互模式可以通过do。。end实现代码块。

    1.lua的全局变量,直接为变量赋值即可,如果没有赋值,一个变量将被认定为nil。如果想删除一个全局变量,可以直接为变量赋值,如b=nil

     


    2.lua中的保留字,不能当做标识符。

    and  break do else elseif end false for function if in local nil not or repeat return then true until while

    lua大小写敏感,单行注释用--,多行注释用--[[      --]]

     


    3.lua的8个基本类型

    nil  boolean  number  string  userdata  function  thread   table

    lua可以直接测定给定变量或者值的类型。

     

    nil:只有一个值,nil,全局变量没有被赋值之前默认为nil。为全局变量赋值nil,可以删除该变量。

    boolean:lua中所有的值都可以作为条件,除了false和nil为假,其他都为真。lua中认为0和空串是真的。

    number:实数,lua中没有整数,可处理任何长整数,如 2  0.2  2e-3  0.2e11  2e+20

    string:lua8位字节,可以用单引号或者双引号,可以处理长字符串,1M的string也是可以处理的,很高效。lua中可以通过转义字符,对字符串进行处理。lua还可以自由的进行string、number之间的转换,如可用print("10"+1),得到结果11。

      

      

      lua中的字符串连接符是 .. ,数字之后写点点,必须加上空格。防止被解释错。

      

    function:函数可以存储在变量中,可以作为函数的参数,可以作为返回值。一个程序可以重新定义函数增加新的功能,或者避免不行的代码隐藏函数。lua可以调用c或者lua实现的函数,所有标准均是c实现的。

     


    4.支持算数运算符,二元:+-*/^,一元:-。

    关系运算符:> < <= >= == ~=。不能混合比较。

    逻辑运算符:nil和false为假,and、or、not,and的优先级比or高。c中的三元符a?b:c,lua中用(a and b)or c

     


    5.优先级从高到低。运算符优先级排序。

     


    6.表的构造。构造器是创建和初始化表的表达式。表的以第一个元素的索引为1.(并不是其他语言的0)。表中的元素可以任意的添加和删除。在构造函数的最后","是可选的,方便以后的拓展,分割符号可以用分号代替,区分不同类型的元素。

     


    7.lua可以对多个变量同时赋值,可以实现swap,也可以通过多变量赋值得到函数的返回值。如:a,b=b,a   a[i],a[j]=a[j],a[i]    a,b=f()

     


    8.代码块的概念:一个控制结构,函数体,或者一个chunk,都可以是一个代码块。

    使用local可以创建一个局部变量,与全局变量不同,局部变量只在声明的代码块中有效。

    程序中尽可能的使用局部变量,避免命名冲突,访问局部变量的速度比较快。

     


    9.控制语句:if的格式有三种,

      if 条件 then 语句块 end;

      if 条件 then 语句块 else 语句块 end;

      if 条件 then  语句块 elseif 条件 then 语句块  else 语句块 end。

    while语句:while 条件  do  语句块  end

    repeat-until语句:repeat 语句块 until 条件

    for语句:@1.数值for循环,for i=10,1,-1 do

                print(i)

               end

          第一个值为初始值,第二个值为结束值,第三个为step值(可以省略,默认为1)。

         

          

        @2.泛型for循环,遍历表有两种方式,一种是  in pairs(表名),一种是in ipairs(表明)。

        

        

    break和return语句放在流程控制中。


    10.函数 function+函数名(参数)end

    当函数只有一个参数,并且这个参数是字符串或者表构造时,()可有可无。

    lua函数可以有多个返回值,该返回时直接 return m,n,j

    lua中调用可变参数的可变函数,可以用unpack函数,使用方法如f(unpack(a)),a为一个表

    未完,待续。。

  • 相关阅读:
    Core Animation 文档翻译—附录C(KVC扩展)
    Core Animation 文档翻译—附录B(可动画的属性)
    Core Animation 文档翻译—附录A(Layer样貌相关属性动画)
    Core Animation 文档翻译 (第八篇)—提高动画的性能
    Core Animation 文档翻译 (第七篇)—改变Layer的默认动画
    Core Animation 文档翻译 (第六篇)—高级动画技巧
    Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
    用Markdown快速排版一片文章
    Core Animation 文档翻译 (第四篇)—让Layer的content动画起来
    Core Animation 文档翻译(第三篇)—设置Layer对象
  • 原文地址:https://www.cnblogs.com/WhiteTaken/p/6277803.html
Copyright © 2011-2022 走看看