05,Lua 基本数值类型(1)

    Lua是一种动态类型的语言。变量不需要类型定义,在语言中也没有类型定义的语法,每个值都“携带”了它自身的类型信息。值可以存储在变量中,作为参数传递或者结果返回。

   在Lua中有8种基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)和table(表)。可以通过自带的type函数返回其传入参数的类型名称。

数据类型 描述
nil 只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean 包含两个值:false和true。
number 表示双精度类型的实浮点数。
string 字符串由一对双引号或单引号来表示。
function 由 C 或 Lua 编写的函数。
userdata 表示任意存储在变量中的C数据结构。
thread 表示执行的独立线路,用于执行协同程序。
table Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串,甚至可以是一个函数。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

这里的type()函数总是返回字符串。

   变量没有预定义的类型、任何变量都可以包含任何类型的值,也就是说在声明一个变量时,这个变量是什么类型只能在你初始化的那一刻,依据你初始化赋值的数值类型(可能是上面8种任一类型),来决定这个变量属于什么类型。

   nil(空)

   nil是一种类型,它只有一个值nil,它的主要功能是用于区别其他任何值。就像之前说的,一个全局变量在第一次赋值前的默认值就是nil,将nil赋予一个全局变量等同于删除它。Lua将nil用于表示一种“无效值”的情况,即没有任何有效值的情况。


   boolean(布尔类型)

   boolean类型有两个可选值:false和true,这与传统的布尔值一样。。然而boolean却不是一个条件值的唯一表示方式。在Lua中任何值都可以表示一个条件。Lua将值false和nil视为“假”,而将除此之外的其他值视为“真”。

   注意:Lua条件测试中,将数字零和空字符串也都视为“真”

   

   number(数字)

   number类型用于表示实数。Lua没有整数类型,因此Lua中的数字可以表示任何32位整数,而不会产生四舍五入的错误。书写一个数字常量时,可以使用普通的写法,也可以使用科学计数法,例如:


   

   string(字符串)

   Lua中的字符串通常表示“一个字符序列”,字面字符串由一对双引号或者单引号来进行匹配界定;也可以由2个方括号"[[]]"来表示"一块"字符串。以这种方式书写的字符串可以延伸多行,Lua不会解释其中的转义序列。此外,如果字符串的第一个字符是一个换行字符,那么Lua会忽略它。

html = [[



    百度


]]

   Lua完全采用8位编码,所以Lua字符串中的字符可以具有任何数值编码,包括数值0,也就是说,任意字符都可以放在“”生成一个对应的字符串,另外任意的二进制数据都可以存储到字符串中。

   Lua的字符串是不可变的值。不能通过直接修改字符串的某个字符来修改字符串,而是根据字符串的修改要求创建一个新的字符串,以达到对应字符串的目的。

   

   一个字符串可以小到只包含一个字母,也可以达到包含整本书。Lua能高效地处理长字符串,在Lua程序中操作100k或1M的字符串是很常见的。

   Lua提供了运行时的数字与字符串的自动转换。在一个字符串上应用算术操作时,Lua会尝试将这个字符串转换成一个数字:

   

   在Lua中,“..”是字符串连接操作符。当直接在一个数字后面输入它时,必须要用一个空格来分割他们。不然Lua会将第一个点理解为小数点。

   

   在Lua5.1中,可以在字符串或字符串变量前面放置操作符“#”来获得该字符串的长度。

   

--------------------------20160617---------------------------------

你可能感兴趣的:(Lua程序设计)