《Lua程序设计》--学习1

前言:

-->  表示一条语句的输出或表达式求值的结果

--  单行注释

> 标注  一些代码需要在交互模式下输入

=  如果需要打印表达式求值的结果,必须在每个表达式前加上一个等号

<-->  表示两者完全等价

语言基础

我们将Lua语言执行的每一段代码(例如,一个文件或交互模式下的一行)称为一个程序段(Chunk),即一组命令或表达式组成的序列。

Lua语言中的标识符(或名称)是由任意字母[插图]、数字和下画线组成的字符串(注意,不能以数字开头

“下画线+大写字母”(例如_VERSION)组成的标识符通常被Lua语言用作特殊用途,应避免将其用作其他用途

《Lua程序设计》--学习1_第1张图片

 Lua语言对大小写敏感

《Lua程序设计》--学习1_第2张图片

 在注释一段代码时,一个常见的技巧是将这些代码放入--[[和--]]之间

当我们需要重新启用这段代码时,只需在第一行行首添加一个连字符即可:

《Lua程序设计》--学习1_第3张图片

 Lua中 分号是可选的,连续语句之间的分隔符并不是必须的,如果需要的话可以用分号来进行分隔,表达式之间的换行不起任何作用,一下4个程序段都是合法且等价的

《Lua程序设计》--学习1_第4张图片

 全局变量

Lua中的变量默认都是全局变量,即使是函数体中声明的

使用未经初始化的全局变量也不会导致错误,当使用未经初始化的全局变量时得到的结果是nil

(类似于null的东西

当把nil赋值给全局变量时,Lua会回收该全局变量(就像该全局变量从来没有出现过一样)

Lua语言不区分未初始化变量和被赋值为nil的变量,当一个变量被赋值为nil时Lua语言最终会收回该变量占用的内存

类型的值

Lua语言是一种动态类型语言(Dynamically-typed language),在这种语言中没有类型定义(type definition),每个值都带有其自身的类型信息。

Lua语言中有8种基本类型:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(用户数据)、function(函数)、thread(线程)和table(表)。使用函数type可获取一个值对应的类型名称

《Lua程序设计》--学习1_第5张图片

 userdata类型允许把任意的C语言数据保存在Lua语言变量中。在Lua语言中,用户数据类型除了赋值和相等性测试外,没有其他预定义的操作

变量没有预定义的类型,任何变量都可以包含任何类型的值

nil

nil是一种只有一个nil值的类型,它的主要作用就是与其他所有值进行区分。Lua语言使用nil来表示无效值(non-value,即没有有用的值)的情况。像我们之前所学习到的,一个全局变量在第一次被赋值前的默认值就是nil,而将nil赋值给全局变量则相当于将其删除。

Boolean

Boolean类型具有两个值,true和false,它们分别代表了传统布尔值。不过,在Lua语言中,Boolean值并非是用于条件测试的唯一方式,任何值都可以表示条件。在Lua语言中,条件测试(例如控制结构中的分支语句)将除Boolean值false和nil外的所有其他值视为真。特别的是,在条件检测中Lua语言把零和空字符串也都视为真。

and,or,not

逻辑运算符and的运算结果为:如果它的第一个操作数为“false”,则返回第一个操作数,否则返回第二个操作数。

逻辑运算符or的运算结果为:如果它的第一个操作数不为“false”,则返回第一个操作数,否则返回第二个操作数

《Lua程序设计》--学习1_第6张图片

 and 和 or 都遵循短路求值原则

and  的运算符优先级 高于 or

not 还是取反符号,永远返回Boolean类型的值

独立解释器

 

 

你可能感兴趣的:(unity,Lua)