Lua变量类型简明总结

 更新时间:2014年10月14日 11:12:17   投稿:junjie  
这篇文章主要介绍了Lua变量类型简明总结,本文总结了Lua中的6种变量类型,并一一说明,需要的朋友可以参考下

在上一节中说到了Lua的安装与变量,这节说说Lua变量的类型。Lua在使用中不需要预先定义变量的类型。Lua中基本的类型有:nil、boolean、number、string、userdata、function、thread、table。可以使用type函数来判断变量的类型。

1. nil

nil是一个特殊的类型,用来表示该变量还没有被赋值,如果一个变量赋值为nil,可以删除这个变量。

2. boolean

boolean类型的变量只有两个值:true和false。在条件表达式中非常有用的。在控制结构条件中只有false和nil为假,其他值都是真的。因此Lua认为0和空字符串都为真。

3. number

number在Lua中是双精度浮点数。没有整数类型。

4. string

在Lua中字符串是不可修改的。string和其他对象一样,Lua自动进行内存的分配和释放。
Lua字符串可以小到一个字符,也可以包含百万字符以上。
可以使用单引号或者双引号表示字符串,还可以使用[[...]]来表示字符串。
对于字符串中含有引号的字符可以使用\来进行转义。
Lua特殊字符串如下:

复制代码 代码如下:

\a 响铃   \v 垂直制表符    \b 退格    \\ 反斜杠
\f 换页符   \" 双引号     \n 换行符    \' 单引号
\r 换行符   \[ 左方括号    \t 制表符    \] 右方括号

..在Lua中是字符串连接符。当在一个数字后面写..时,必须加上空格,否则出错。
Lua会根据上下文在合理的情况下,对数字和字符串之间进行转换。如果需要显示的将string转成数字可以使用函数tonumber(),反之,可以使用tostring()将数字转成字符串。

5. function

函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。

6. table

table在Lua中是最强大最重要也是最容易造成困惑的数据类型。
table 类似于 python 中的字典。table 只能通过构造式来创建。

复制代码 代码如下:

> tab = { web = "www.jb51.net", QQ = 39514058, 20, a = 30, b = 40, 50  }             
> tab2 = { 'web' = "www.jb51.net", QQ = 39514058, 20, a = 30, b = 40, 50 } 
stdin:1: '}' expected near '='
> print(tab["web"])
www.jb51.net
> print(tab[web])
nil
> print(tab[1]) 
20
> print(tab[2])
50
> print(tab[3])
nil

注释:
6.1 table 中的每项要求是 key = value 的形式。 省略key时,会自动以1开始编号,并跳过设置过的key。
6.2 key 只能是字符串, 这里的 web, QQ, a, b 都是字符串,但是不能加上引号, 否则出错。
6.3 通过 key 来访问 table 的值,这时候,必须加上引号。

相关文章

  • LUA中的闭包(closure)浅析

    LUA中的闭包(closure)浅析

    这篇文章主要介绍了LUA中的闭包(closure)浅析,本文给出实例讲解LUA中的闭包,需要的朋友可以参考下
    2015-02-02
  • Lua极简入门指南(一):基础知识篇

    Lua极简入门指南(一):基础知识篇

    这篇文章主要介绍了Lua极简入门指南(一):基础知识篇,本文罗列了Lua的基础知识,如注释、数据类型、table、循环控制结构等内容,需要的朋友可以参考下
    2014-10-10
  • 举例讲解Lua中的Table数据结构

    举例讲解Lua中的Table数据结构

    这篇文章主要介绍了举例讲解Lua中的Table数据结构,说明都融入到了注释中,需要的朋友可以参考下
    2015-07-07
  • Lua极简入门指南(三): loadfile和错误处理

    Lua极简入门指南(三): loadfile和错误处理

    这篇文章主要介绍了Lua极简入门指南(三): loadfile和错误处理以及追踪错误等内容,需要的朋友可以参考下
    2014-10-10
  • Lua教程(二):C++和Lua相互传递数据示例

    Lua教程(二):C++和Lua相互传递数据示例

    这篇文章主要介绍了Lua教程(二):C++和Lua相互传递数据示例,本文主要讲解了基本数据类型的传递,比如整形(int)、字符串(string)、数字(number)及bool值,需要的朋友可以参考下
    2014-09-09
  • Lua中的运算符简明总结

    Lua中的运算符简明总结

    这篇文章主要介绍了Lua中的运算符简明总结,本文总结了数学运算符、连接运算、赋值运算、 逻辑运算、关系运算等运算符,需要的朋友可以参考下
    2014-10-10
  • Lua中的repeat...until循环语句使用教程

    Lua中的repeat...until循环语句使用教程

    这篇文章主要介绍了Lua中的repeat...until循环语句使用教程,是Lua入门学习中的基础教程,需要的朋友可以参考下
    2015-05-05
  • Lua中的持久化和序列化详解

    Lua中的持久化和序列化详解

    这篇文章主要介绍了Lua中的持久化和序列化详解,本文详细讲解了Lua中的持久化和序列化,并给出代码实例,需要的朋友可以参考下
    2014-09-09
  • 使用lua实现php的var_dump()函数功能

    使用lua实现php的var_dump()函数功能

    小编比较熟悉php,所以这篇文章主要介绍了使用lua实现php的var_dump()函数功能,需要的朋友可以参考下
    2014-11-11
  • Lua的编译、执行和调试技术介绍

    Lua的编译、执行和调试技术介绍

    这篇文章主要介绍了Lua的编译、执行和调试技术介绍,本文着重讲解了对错误的处理,另外也讲解了编译和执行等知识,需要的朋友可以参考下
    2015-04-04

最新评论