第3课 - 启航Lua之路
第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之路的更多相关文章
- 第2课 - 搭建Lua开发环境
第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台. (2)Lua 是开源且免费的软件,以源码的方式直接 ...
- 第1课 - 学习 Lua 的意义
第1课 - 学习 Lua 的意义 1.Lua 简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有 200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目标是 ...
- 第1课 - 学习Lua的意义
学习Lua的意义 1.Lua简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目 ...
- 程序员的进阶课-架构师之路(14)-B+树、B*树
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- 程序员的进阶课-架构师之路(13)-B-树
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- 程序员的进阶课-架构师之路(9)-平衡二叉树(AVL树)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- LUA速成教程
說明: 1.該教程適合對編程有一定了解的人員. 2.該教程在WINDOWS下實驗. 切入正題, 1.首先下載Notepad++,工欲善其事,必先利其器,然後安裝NotePad++的插件NppExec. ...
- MySQL读写分离技术
1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...
- Centos 搭建Mysql-Proxy 读写分离
Mysql 读写分离 主:192.168.153.130 从:193.168.153.131 Mysql-Proxy:193.168.153.132 这里省略mysql主从同步,如果有需要,请查看:M ...
随机推荐
- My_Tomcat_Host 靶机
1:扫描网段: 发现主机IP为192.168.1.203 2:nmap 扫描端口信息 发现8080端口开启了http服务 22ssh服务 3:尝试ssh连接是需要密码的,然后访问8080端口 4:发 ...
- HTML基础-05
字体 文本颜色:color:red;字体分类: 衬线字体serif --字体宽度各异,有衬线 --Times.Georgia.宋体 无衬线字体sans-serif --字体宽度各异,无衬线 --Hel ...
- C、C++、Java、Python该怎么选
对于很多对编程感兴趣的小伙.或是正在读计算机专业的大学生来说,不知道要选择哪一门编程语言发展.对于计算机专业的学生,一般的学习都普遍会开始设C.C++.Java等热门的编程语言,但还是不太清楚选择哪一 ...
- CAS和锁的相关面试题
CAS 锁 锁的四种状态和升级 锁的四种状态:无锁.偏向锁.轻量级锁和重量级锁 无锁 无锁就是没有真正意义上的上锁,所有的线程还是能访问并修改同一个资源,但是通过算法控制,实现同时只有一个线程修改成功 ...
- C++ Templates (1.5 重载函数模板 Overloading Function Templates)
返回完整目录 目录 1.5 重载函数模板 Overloading Function Templates 1.5 重载函数模板 Overloading Function Templates 和普通函数一 ...
- ucore lab2
CPU在如下时刻会检查特权级 访问数据段 访问页 进入中断服务例程(ISR) RPL位于段寄存器 DS ES FS GS CPL位于CS SS DPL位于段描述符表/门描述符 访问门时: CPL< ...
- Netbox 开源 IPAM 管理工具搭建详细流程
原文链接:Netbox 开源 IPAM 管理工具搭建详细流程 参考资料:https://netbox.readthedocs.io/en/stable/ PostgreSQL数据库安装 1.yum 下 ...
- centos iso镜像自动挂载
vim /etc/fstab 添加如下行:/usr/ison/centos.iso /media/cdrom iso9660 defaults,loop 0 0
- 第2篇 Scrum 冲刺博客
1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 无 确定客户端和服务器通信的形式 各成员的代码难以统一 庄诗楷 无 编写客户端UI 加入图片总是失败 易德康 无 马,车 ...
- Vue的Options
el:挂载点 与$mount有替换关系 new Vue({ el: "#app" }); new Vue({}).$mount('#app') 注:被你选为挂载点的那个元素,如果在 ...