Lua变量类型简明总结_Lua

在上一节中说到了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 的值,这时候,必须加上引号。

时间: 2024-07-30 04:16:42

Lua变量类型简明总结_Lua的相关文章

Lua table类型学习笔记_Lua

关系表类型,这是一个很强大的类型.我们可以把这个类型看作是一个数组.只是 C语言的数组,只能用正整数来作索引: 在Lua中,你可以用任意类型的值来作数组的索引,但这个值不能是 nil.同样,在C语言中,数组的内容只允许一种类型:在 Lua中,你也可以用任意类型的值来作数组的内容,nil也可以. 基本介绍 注意三点: 第一,所有元素之间,总是用逗号 "," 隔开: 第二,所有索引值都需要用 "["和"]" 括起来:如果是字符串,还可以去掉引号和中括

Lua学习笔记之类型与值_Lua

基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8种基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字)类型 string(字符串)类型 userdata(自定义类型) function(函数)类型 thread(线程)类型 table(表)类型 以上是Lua中的8中基本类型,我们可以使用type函数,判断一个值得类型,type函数返回一个对应类型的字符串描述.例如: local iValue = 10

Lua简介、编译安装教程及变量等语法介绍_Lua

公司业务有用到Lua,与nginx结合起来实现高性能的web应用,想去弄懂这方面的知识,就去了解学习了下Lua,欢迎大咔们指教. 1. Lua介绍 Lua是一门简单的编程语言,它的优势在于可以整合C++的模块来扩展自身的功能,使用数百行或更少的代码来解决复杂的问题.具有的特征有: 1.1. 可扩展性:Lua从一开始就被设计成易于扩展的语言,很多功能都是通过外部库来实现的,很容易与其他编程语言如C.C++.Java等等进行交互. 1.2. 简洁: Lua十分简洁,但是功能强大,易于学习,很适合小规

Lua教程(五):C/C++操作Lua数组和字符串示例_Lua

本文将介绍如何在C/C++里面操作Lua的数组和字符串类型,同时还会介绍如何在C/C++函数里面存储Lua状态(registry和upvalue),而registry在使用C/C++自定义类型时非常有用,可以方便地为userdata指定metatable. C/C++操作Lua数组 Lua数组Overview 在Lua里面,数组只不过是key为整数的table而已.比如一个table为array = {12,"Hello", "World"},它是一个数组,可以用下

简单谈谈lua和c的交互_Lua

介绍 lua和c的亲密接触,靠的是一个虚拟栈.lua通过这个虚拟栈来实现和c之间值的互传.栈上的每一个元素是一个lua值(nil,number,string...). 当lua调用c函数的时候,这个函数会得到一个新的栈,这个栈独立于c函数本身的栈,也独立于lua自己的栈.它里面包含了lua要传给c的所有参数,然后c函数会把返回的结果放入这个栈中返回给调用者. 对于栈的查询操作,如果按照栈的规则,只能拿到栈顶的元素.但这里和常规的栈有一些差异.就是可以用一个索引来指向栈上的任何元素.正数的索引(1

Java变量类型间的相互转换

变量|转换 ????我们知道,Java的数据类型分为三大类,即布尔型.字符型和数值型,而其中数值型又分为整型和浮点型:相对于数据类型,Java的变量类型为布尔型boolean:字符型char:整型byte.short.int.long:浮点型float.double.其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围.此外,我们还经常用到两种类变量,即String和Date.对于这些变量类型之间的相互转换在我们编程中经常要用到,在我们今天的这篇文章中,我们将来看看如何实现这些转换. ??

初学来看:动态网页制作技术PHP的变量类型

php 的变量类型不多,有以下五种: string integer double array object string 即为字符串变量,无论是单一字符或数千字的字符串都是使用这个变量类型.值得注意的是要指定字符串给字符串变量,要在头尾加上双引号 (例如: "这是字符串").在要让字符串换行时,可使用溢出字符,也就是反斜线加上指定的符号,若是 \x 加上二位数字,如 \xfe 即表十六进位字符,详见下表: \"双引号\\反斜线\n换行\r送出 cr\t跳位 (tab) 符号

C#变量类型

在C#语言中,我们把变量分为七种类型,它们分别是:静态变量(static varibles),非静态变量(instance variables),数组元素(array elements),值参数(value parameters),引用参数(reference parameters),输出参数(output parameters),还有局部变量(local variables).看下面的例子: class A { public static int x; int y; void F(int[]

JAVA变量类型之间的相互转换

一. 整型.实型.字符型变量中的相互转换 在Java中整型.实型.字符型被视为同一类数据,这些类型由低级到高级分别为(byte,short,char)??int??long??float??double,低级变量可以直接转换为高级变量,例如,下面的语句可以在Java中直接通过: byte b; int i=b; 而将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换.即你必须采用下面这种语句格式: int i; byte b=(byte)i; 可以想象,这种转换肯定可能会导致溢出或