《Lua程序设计》第4章 语句 学习笔记
Lua中的常规语句包括:赋值、控制结构和过程调用。
Lua还支持一些不太常见的语句,如:多重赋值(multiple assignment) 和 局部变量声明。
4.1 赋值
Lua允许“多重赋值”,也就是一下子将多个值賦给多个变量。每个值或每个变量之间以都好分隔。例如:
a, b = 10, 2*x
赋值后,变量a变为10,b变为2*x。
在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值。这样便可以用一句多重赋值来交互两个变量了,如下所示:
x, y = y, x -- 交换x与y
a[i], a[j] = a[j], z[i] -- 交换a[i]与a[j]
4.2 局部变量和块(block)
通过local语句来创建局部变量:
local i = 1 -- 局部变量
与全局变量不同的是,局部变量的作用于仅限于声明它们的哪个块。一个块(block)是一个控制结构的执行体、或者是一个函数的执行体再或者是一个程序块(chunk)。
在交互模式中,每行输入内容自身就形成一个程序块。为了解决这个问题,可以显式地界定一个块,只需将这些内容放入一对关键字do-end中即可。每当输入了do时,Lua就不会单独地执行后面的每行的内容,而是直至遇到一个相应的end时,才会执行整个块的内容。
“尽可能地使用局部变量”是一种良好的编程风格。
在Lua中,有一种习惯写法是:
local foo = foo
这句代码创建了一个局部变量foo,并将用全局变量foo的值初始化它。
4.3 控制结构
http://www.cnblogs.com/moonlightpoet/p/5681859.html
4.4 break与return
……
《Lua程序设计》第4章 语句 学习笔记的更多相关文章
- 《C++Primer》第五版习题解答--第四章【学习笔记】
[C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...
- 《C++Primer》第五版习题答案--第五章【学习笔记】
<C++Primer>第五版习题答案--第五章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/15 第五章:语句 ...
- 20145213《Java程序设计》第八周学习笔记
20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...
- 《C++Primer》第五版习题答案--第六章【学习笔记】
<C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...
- 《C++Primer》第五版习题答案--第三章【学习笔记】
[C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...
- 《汇编语言程序设计》(Professional Assembly Language)学习笔记(二)
挖坑:学习笔记(一)讲述如何在 Windows Vmware 上安装 Ubuntu 20.04 实践环境 本文是基于Ubuntu 20.04平台进行实验,下文中的解决方法都基于此前提 问题记录 问题一 ...
- 《Lua程序设计》第5章 函数 学习笔记
Lua为面向对象式的调用也提供了一种特殊的语法——冒号操作符.表达式o.foo(o, x)的另一种写法是o:foo(x),冒号操作符是调用o.foo时将o隐含地作为函数的第一个参数.Lua可以调用C语 ...
- 《Lua程序设计》第3章 表达式 学习笔记
3.1 算术操作符“+”(加法).“-”(减法).“*”(乘法).“/”(除法).“^”(指数).“%”(取模).3.2 关系运算符< > <= >= == ~=3.3 逻辑操 ...
- 《Lua程序设计》第1章 开始 学习笔记
1.1 程序块(chunk)每段代码(例如一个源代码文件或在交互模式中输入的一行代码),称为一个程序块.若使用命令行参数-i来启动Lua解释器,那么解释器就会在运行完指定程序块后进入交互模式.dofi ...
随机推荐
- elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- JUnit套件测试实例
“套件测试”是指捆绑了几个单元测试用例并运行起来.在JUnit中,@RunWith 和 @Suite 这两个注解是用来运行套件测试. 下面的例子演示这两个单元测试:JunitTest1 和 Junit ...
- MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决
MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决: # /etc/init.d/mysql stop # my ...
- miRbase 数据库简介
miRbase 是miRNA 的数据库,目前最新版本为 release 21, 共有28645 条 miRNA, 第22 版已经完成,即将发布,22版新增了10000 个miRNA, 大多来源于新的 ...
- Intellij Idea反向生成Hibernate实体类
每次根据数据库的表反向生成实体类老不记得步骤...脑子不够用,这里特意记录一下.碰到的问题也及时更新到这里来. 1. 工程添加Hibernate支持 两种方式: 第一种:工程上右键选择 "A ...
- java提取url里的域名
使用java标准类库java.net.URL java.net.URL url = new java.net.URL("http://blog.csdn.net/xxx.png") ...
- shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号
shell特殊符号cut命令 特殊符号 * 通配符,任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 c=\$a\$b echo $c | 管道符 cat 1.txt |less ...
- Linq 实现两个对象实例List之间的赋值
public class UserCopy { public class LoginEntity { public string UserName { get; set; } public strin ...
- CorelDRAW中如何分布对象
分布对象功能主要用来控制选择对象之间的距离,可以满足用户对均匀间距的要求,通常用于选择三个或三个以上的物体,将他们之间的距离平均分布.本教程将详解CorelDRAW中关于分布对象的操作. CorelD ...
- windows下caffe安装配置、matlab接口
一.CommonSettings.props caffe下载后解压.源代码文件夹caffe-master,到该文件夹下的windows文件夹下,将CommonSettings.props.exampl ...