第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");

            --]]

 -- 演示Lua的变量、程序块和注释的用法 

 a, b, c = , , 3;
foo = "global"; --[[ enable code segment with a '-'
do
local x, y = a, b;
local foo = foo; print("foo = ", foo); foo = "local"; print("foo = ", foo); print("a = ", a);
print("b = ", b); print("x = ", x);
print("y = ", y);
end print("\n");
--]] print("a = ", a);
print("b = ", b); print("x = ", x);
print("y = ", y); a, b, foo = nil; -- 小技巧,未赋值的为 nil

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

第3课 - 启航Lua之路的更多相关文章

  1. 第2课 - 搭建Lua开发环境

    第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台. (2)Lua 是开源且免费的软件,以源码的方式直接 ...

  2. 第1课 - 学习 Lua 的意义

    第1课 - 学习 Lua 的意义 1.Lua 简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有 200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目标是 ...

  3. 第1课 - 学习Lua的意义

    学习Lua的意义 1.Lua简介             (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目 ...

  4. 程序员的进阶课-架构师之路(14)-B+树、B*树

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  5. 程序员的进阶课-架构师之路(13)-B-树

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  6. 程序员的进阶课-架构师之路(9)-平衡二叉树(AVL树)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  7. LUA速成教程

    說明: 1.該教程適合對編程有一定了解的人員. 2.該教程在WINDOWS下實驗. 切入正題, 1.首先下載Notepad++,工欲善其事,必先利其器,然後安裝NotePad++的插件NppExec. ...

  8. MySQL读写分离技术

    1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...

  9. Centos 搭建Mysql-Proxy 读写分离

    Mysql 读写分离 主:192.168.153.130 从:193.168.153.131 Mysql-Proxy:193.168.153.132 这里省略mysql主从同步,如果有需要,请查看:M ...

随机推荐

  1. iOS Abort问题系统性解决方案

    一.背景 崩溃(Crash),即闪退,多指移动设备(如iOS.Android设备)在打开/使用应用程序的过程中,突然出现意外退出/中断的情况.如果App线上版本频繁发生崩溃,会极大地影响用户体验,甚至 ...

  2. JS的数据属性和访问器属性

    ECMA-262第5版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262定义这些特性是为了实现javascript引擎用的,因此在javasc ...

  3. 0x01 基本算法-位运算 a^b

    #include<bits/stdc++.h>using namespace std;int power(int a, int b, int p){    int ans = 1%p;   ...

  4. 隐藏jqgrid滚动条

    .ui-jqgrid .ui-jqgrid-bdiv{ overflow-x: hidden; } /* 隐藏jqgrid滚动条 */

  5. java程序CPU 100%调试

    前置 PID为进程id,NID为线程ID 步骤一.找到最耗CPU的进程 top 然后键入P,按CPU占用率排序(M是按内存排序) 步骤二.找到进程中最耗CPU的线程 top -Hp PID 步骤三.将 ...

  6. 提升布局能力!理解 CSS 的多种背景及使用场景和技巧

    CSS background是最常用的CSS属性之一.然而,并不是所有开发人员都知道使用多种背景.这段时间都在关注使用多种背景场景.在本文中,会详细介绍background-image`属性,并结合图 ...

  7. AltiumDesigner画图不求人11 | 提高AD20启动速度的方法七选择手动释放工程 | 视频教程 | 你问我答

    往期文章目录 AD画图不求人1 | AD20软件安装视频教程 | 含软件安装包 AD画图不求人2 | 中英文版本切换 AD画图不求人3 | 高亮模式设置 AD画图不求人4 | 双击设计文件无法启动Al ...

  8. IA-32/centos7开机流程

    开机后系统首先在实地址模式下工作(只有1MB的寻址空间) 开机过程中,需要先准备在实模式下的中断向量表和中断服务程序.通常,由固化在主板上一块ROM芯片中的BIOS程序完成 加载BIOS的硬件信息,B ...

  9. 手写一个简单版的SpringMVC

    一 写在前面 这是自己实现一个简单的具有SpringMVC功能的小Demo,主要实现效果是; 自己定义的实现效果是通过浏览器地址传一个name参数,打印“my name is”+name参数.不使用S ...

  10. Java算法——递归思想

    描述递归(recursion):程序调用自身的编程技巧. 递归满足2个条件:1)有反复执行的过程(调用自身)2)有跳出反复执行过程的条件(递归出口) 递归与栈的关系下面演示的是求n的阶乘 int Fa ...