• 第3课


    第3课 - 启航Lua之路

    1. Lua中的变量

      (1)变量:全局变量和局部变量

        — Lua中支持全局变量局部变量的概念

        • 全局变量:直接定义变量名,并复制

              a = 1;   -- 用 ; 结束当前语句(可选)

        • 局部变量:使用 local 关键字进行定义 

              local b = 2         

      (2)变量的命名规则

        — 遵循 C/C++ 语言中的变量命名规则:可以是由任意字母、数字和下划线构成的字符串,但不能以数字开头,且区分大小写。

        — 避免定义下划线开头并跟着大写字母的变量名,Lua将这类标识符用作特殊用途

        — Lua关键字不能用作变量名

        — Lua中的变量是 "动态类型" ,根据变量保存的值确认变量的类型

        变量正确的用法:

          s = "Lua"    -- 定义了一个字符串

          i = 1       -- 定义了一个整型变量

          _float_ = 0.01  -- 定义了一个浮点数

          PI = 3.14    -- 定义了一个浮点数

        变量错误的用法:

          if = "err"     -- 使用了Lua的关键字 if

          _Err = 0.1    -- 下划线开头不能跟大写字母

          标识符 = 1    -- Lua支持非英文字符变量名,但是依赖于区域设置(Locale),因此不能保证可移植性

          _PI_ = 3.14    -- 下划线开头不能跟大写字母

      (3)Lua中变量的使用

        — 可以在一行定义多个变量,尽量在定义变量时赋值

        — 定义变量时不需要声明类型,变量具有动态类型

        — 未赋值的变量,其值默认为 nil(空值)

        示例:

            a = 1    a => 1

            b, c = "2"  b => "2"  c => nil

            d = 3, 4    d => 3

      (4)变量使用的注意事项

        — 局部变量的作用域仅限于块中(if, else, while, do, function

        — 在Lua中尽可能使用局部变量(访问速度更快,和Lua内部对于全局变量的实现原理有关)

        — 当不再使用全局变量的时候,用 nil 进行赋值

    2. Lua中的程序块

        — Lua解释器以程序块的方式处理 Lua代码

        — 每一段可执行的Lua代码都可以称为程序块

        — 一个程序块由一条多条 Lua 语句构成

        • 简单的程序块:一条语句
        • 复杂的程序块:多条不同语句及函数定义构成

        

    3. Lua中的注释

      — 单行注释:--

      — 多行注释:--[[ ...... ]]

        多行注释技巧:

                --[[

                print("D.T.software");

                --]]

     1 -- 演示Lua的变量、程序块和注释的用法 
     2 
     3 a, b, c = 1, 2, 3;
     4 foo = "global";
     5 
     6 --[[ enable code segment with a '-'
     7 do
     8     local x, y = a, b;
     9     local foo = foo;
    10 
    11     print("foo = ", foo);
    12     
    13     foo = "local";
    14     
    15     print("foo = ", foo);
    16     
    17     print("a = ", a);
    18     print("b = ", b);
    19     
    20     print("x = ", x);
    21     print("y = ", y);
    22 end
    23 
    24 print("
    ");
    25 --]]
    26 
    27 print("a = ", a);
    28 print("b = ", b);
    29     
    30 print("x = ", x);
    31 print("y = ", y);
    32 
    33 a, b, foo = nil;  -- 小技巧,未赋值的为 nil
    34     

    注:本文整理于《狄泰12月提升计划》课程内容

  • 相关阅读:
    设计模式之设计原则
    把二叉树打印成多行
    快速排序的递归遍历和非递归遍历
    二叉树的非递归遍历
    约瑟夫环问题
    strcpy strcat strcmp memcpy函数的自己实现
    【解题模板】一些很基础的板子
    【笔记】取模运算的用法
    【OJ技巧】DSACPP pa-book中的一些提示
    【编程语言】Java基础进阶——面向对象部分
  • 原文地址:https://www.cnblogs.com/shiwenjie/p/6821743.html
Copyright © 2020-2023  润新知