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为一个表

    未完,待续。。

  • 相关阅读:
    mysql如何查询最新插入的数据
    nodejs express开发
    在线考试实现倒计时的代码
    centos的vsftp修改上传下载速度
    centos vsftpd
    ul和li里面的list-style
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
  • 原文地址:https://www.cnblogs.com/WhiteTaken/p/6277803.html
Copyright © 2011-2022 走看看