《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 ...
随机推荐
- e827. 设置JSplitPane中分隔物的大小
A divider can be no less than one pixel in size. // Create a left-right split pane JSplitPane pane = ...
- Spring Boot 快速搭建的三种方式
方式一:http://start.spring.io/ 打开浏览器,在地址栏中输入http://start.spring.io/ 如下图: 点击generate project 然后就会有一个zip ...
- vncviewer 通过ipv6连接
vncserver 填为: [ipv6-address]:port 即可,例如 [:da8::81f:f292:1cff:fe07:da3c]:
- js中找string中重复项最多的字符个数
// split():字符串中的方法,把字符串转成数组. // sort():数组中的排序方法,按照ACALL码进行排序. // join():数组中的方法,把数组转换为字符串 function de ...
- C# 实现数字字符串左补齐0的两种方法
); MessageBox.Show(sss); return; 代码如上,自动补齐前面的0
- MyBatis批量增删改的另外一种思路(推荐)
零.传统拼接SQL语句的弊端 传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言. 其实这种方式是存在弊端的: 1. SQL语句可能会过长,DB的引擎 ...
- jquery ajax 设置全局(常量和变量)
允许同源(相同域名不同端口)跨域配置: $.ajaxSetup({ xhrFields: { withCredentials: true } }); ajax所有的请求的全局设置: 此处为设置 自定义 ...
- iOS :ViewDidAppear
进入一个 UIViewController 会调用它的三个方法,分别是 viewDidLoad, viewWillAppear, viewDidAppear. 如每个方法的名字一样,在不同的方法中要处 ...
- qq划屏幕红包程序
qq划屏幕红包程序
- vue如何加入百度ssp广告位代码
vue如何加入百度联盟广告,可以参考 :http://www.cnblogs.com/beileixinqing/p/8379184.html 这里讲述vue如何加入百度ssp媒体的广告 这里是百度异 ...