• Lua快速入门


    Lua 是一个小巧的脚本语言,可以直接使用解析器进行解析。设计目的是为了嵌入应用程序中,从而为应用提供灵活的扩展和定制功能。

    Lua 由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。

    Lua并没有提供强大的库,所以Lua 不适合作为开发独立应用程序语言。

    Lua 有一个同时进行的JIT项目,提供在特定平台上的及时编译功能。

    Lua 不仅可以作为扩展脚本被其他代码调用,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。在目前所有脚本引擎中。Lua的速度是最快的,这一切都决定了Lua是作为嵌入式脚本的最佳选择。

    Lua 不仅是一种易于扩展的语言,也是一种易整合语言 ,Lua 支持基于组件的,除了作为整合语言外,Lua 自身也是一个功能强大的语言。Lua 不仅可以整合组件,还可以编辑组件甚至完全使用 Lua 创建组件。 

    Lua语言特征:

    1、可扩展性。Lua 的扩展性非常卓越,以至于很多人把 Lua 用作搭建领域语言的工具(注:比如游戏脚本)。Lua 被设计为易于扩展的,可以通过 Lua 代码或者 C代码扩展,Lua 的很多功能都是通过外部库来扩展的。

    2、简单。Lua 本身简单,小巧;内容少但功能强大,这使得 Lua 易于学习,很容易实现一些小的应用。

    3、高效率。Lua 有很高的执行效率,统计表明 Lua 是目前平均效率最高的脚本语言。

    4、与平台无关。Lua 几乎可以运行在所有我们听说过的系统上,如 NextStepOS/2PlayStation II (Sony)Mac OS-9OS XBeOSMS-DOSIBMmainframesEPOCPalmOSMCF5206eLITE Evaluation BoardRISCOS,及所有的 Windows UnixLua 不是通过使用条件编译实现平台无关,而是完全使用 ANSI (ISO) C,这意味着只要你有 ANSI C 编译器你就可以编译并使用 Lua。 

    Lua的使用者:

    1、使用 Lua 嵌入到其他应用中的:很多人使用 Lua 嵌入在应用程序,比如 CGILua(搭建动态网页)、LuaOrb(访CORBA 对象。这些类型用 Lua-API 注册新函数,创建新类型,通过配置 Lua 就可以改变应用宿主语言的行为。 

    2、独立使用 Lua 的:作为一种独立运行的语言,主要用于文本处理或者只运行一次的小程序。这种应用 Lua 主要使用它的标准库来实现,标准库提供模式匹配和其它一些字串处理的功能。 

    3、将 LuaC 混合使用的: 还有一些使用者使用其他语言开发,把 Lua 当作库使用。这些人大多使用 C语言开发,但使用 Lua 建立简单灵活易于使用的接口。 

    Lua的开发环境:LuaforWindows(包含Lua 解析器,帮助文档,API手册)

    Lua注释:

        1、单行注释:--

        2、多行注释:--[[           --]]

    Lua语言后面可以没有 “ ; ”表示结束,在同一行也可以输入多行的内容

    Lua中的数据类型:

        1、nil      2、 Boolean    3、 number    4、string

        5、function   6、table     7、thread      8、userdata

    Lua的测试:

        在编辑代码区域输入:print(‘hello world’)

        

        点击运行按钮(上方红色位置)会在下方输出hello world则成功。

        

    Lua变量:1、Lua中除了关键字其余一切都是变量,变量创建之前不能使用;

         2、变量在定义时使用下划线开头的字母,下划线,数字序列;

         3、最好不要使用下划线加大写字母的标识符。下划线加大写字母是系统预留的,不能定义。

                         

         4、Lua中变量有三种类型:全局变量,局部变量,表中的域。

            Lua中的变量是全局变量,即使在函数中,如果想要定义局部变量就在变量前加local,变量的默认值均为nil。

                          Lua变量使用尽量使用局部变量:可以避免命名冲突,访问局部变量的速度比全局变量更快。

               5、Lua的赋值:

                                 (1)可以同时给多个变量赋值:a,b,c,d=1,2,3,4

                                 (2)可以交换变量功能:a,b=b,a

                                 (3)当变量个数和值得个数不一致时,Lua会以变量的个数为基础赋值:

                                               a、变量个数>值的个数           按变量个数补足nil

                                               b、变量个数<值得个数           多余的值会被忽略

          6、Lua基本数据类型:

            (1)nil:Lua中特殊的一个值,表示空值,所有没有赋值的变量都是nil,nil 即表示数值,又表示类型。给全局变量赋值nil,可以删除该变量。

            (2)逻辑值:只有两个  true  和  false  两种,在控制结构的条件中除了false和nil为假,其他值都为真。

            (3)数值:相当于C# 中的  double类型,可以代替整数,浮点数。

            (4)字符串:由数字、字母、下划线组成。

                 有三种表示方式:   (1)单引号:’ ’    

                          (2)双引号:” ”

                          (3) 双括号 [[  ]]

                                                                                    

                 分隔方式:

                   1、输入的是数字时直接使用  ‘,’  隔开,                  

                                                        2、当输入的是字符串时可以使用    ‘..’连接字符串。必须加上空格以防止被解释错。 

                 字符串的转换:在运行Lua时,当字符串使用算术操作符时,会自动在String 和numbers 之间进行类型转换。如果需要显式将 string 转成数字可以使用函数 tonumber(),如果 string 不是正确的数字该函数将返回 nil反之,可以调用 tostring()将数字转成字符串 。 

                 字符串常用方法:

                   

     

             (5)函数:  function 本身是一种变量,可以作为函数使用,也可以作为返回值使用,作为返回值时,可以同时返回多个结果。function 结尾使用end才能结束。Lua 可以调用 lua 或者 C 实现的函数,Lua 所有标准库都是用 C 实现的。标准库包string 库、table 库、I/O 库、OS 库、算术库、debug 库。 

                   这是一个打印  helloworld  的函数示例:

                                                         

            (6)表结构:

                1、table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。

                2、Lua table 使用关联型数组,

                3、你可以用任意类型的值来作数组的索引,但这个值不能是 nil。

                   4、Lua table 是不固定大小的,你可以根据自己需要进行扩容。

                5、Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。

                                              6、所有的元素之间,总是用“ ,”隔开。

                                              7、所有索引值都需要用“[” 和“]”括起来;如果是字符串,还可以去掉引号和中括号。

                                             8、如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编。

            (7)Userdata:

                  1、userdata专门和Lua的宿主机打交道;

                  2、userdata 可以将 C 数据存放在 Lua 变量中;

                  3、userdata 在 Lua 中除了赋值和相等比较外没有预定义的操作。

                  4、userdata 用来描述应用程序或者使用 C 实现的库创建的新类型。
                     例如:用标准 I/O 库来描述文件。

            (8)Thread:线程类型

     Lua中的转义字符:

                                 

    最后为我微信公众号引个流,欢迎大家关注我的微信公众号,大家一起学习一起进步

  • 相关阅读:
    115. Distinct Subsequences
    91. Decode Ways
    72. Edit Distance
    python 输出 a+b
    求次小生成树
    判断最小生成树是否唯一
    二分法求最优值
    黑科技
    线段树+ 区间更新
    2018ICPC青岛赛区J题
  • 原文地址:https://www.cnblogs.com/damonHead/p/9061394.html
Copyright © 2020-2023  润新知