Lua是一种动态语言,在语言中没有类型定义的语法。

在lua中有8中基本的类型:

1.nil(空)

2.boolean

3.number(数字)

4.string(字符串)

5.userdata(自定义类型)

6.function(函数)

7.thread(线程)

8.table(表)

函数type可根据一个值返回类型的名称。

print(type("Hello world")) ------------->string

由于变量是没有预定义类型的,所以

a = ;

print(type(a)); --------------------->number

a = print;        ------------------------>注意这个是合法的

print(type(a)); ----------------------->function

这里我们重点来看下string类型

Lua的字符串是不可变的值,如果修改只能创建一个新的字符串:

a = "one";
b = string.gsub(a,"one","two");
print(a);-------------->one
print(b);-------------->two

Lua的字符串和其他Lua对象一样,都是采用自动内存管理机制所管理的对象。

另外还可以用一对匹配的双方括号来界定一个字母字符串,这样就可以延伸多行,但Lua不会解释其中的转义字符。

如:

page = [[
<html>
<head>
</head>
</html>
]]
write(page);

Lua提供了运行时数字和字符串自动转换。

print(""+); ------------------>21
print("Hello"+);---------------->错误

相反,Lua也可以将字符串转换成一个数字

print(10 .. );------------------>1020

在Lua中 .. 表示字符串连接操作符。

接着我们来看看table类型

a = {};------------------->创建一个table,并引用到变量a中

for i=1,1000 do a[i] = i * 2 end;

print(a[9];) -------------------->18

print(a["x"]);-------------------->nil

我们还可以将a["x"]写成a.x,但是注意a.x与a["x"]的区别。

长度操作符“#”用于返回一个数组或者线性表的最后一个索引,我们可以用他来干很多有意义的事情

遍历table:

for i=1,#a do

  print(a[i]);

end

删除最后一个元素:

a[#a] = nil;

末尾添加元素:

a[#a+1] = v;

当一个数组中间有空隙也就是说有元素是nil,那么#就认为这个空元素是数组结束的标志。

如果真的需要处理那些有空隙的数组,那么就需要用到函数table.maxn,它将放回数组的最大索引的元素。

a = {};

a[10000]  = 1;

print(table.maxn(a)); ---------------->10000

接下来我们来看下Lua里面的function函数

lua语言中的函数可以存储在变量中,可以通过参数来传递给其他函数,好可以作为其他函数的返回值。

Lua既可以调用自身的函数,也可以调用c语言的函数。

userdata和thread

userdata用于表示一种由应用程序或者c语言库所创建的新类型。

Lua学习之类型与值的更多相关文章

  1. lua学习之类型与值篇

    类型与值 lua 是动态类型的语言 在语言中没有类型定义的语法 每个值都携带有它的类型信息 8种基础类型 用 type 可以返回这个值的类型的名称 将一个变量用于不同类型,通常会导致混乱的代码 但合理 ...

  2. Lua中的类型与值

    [基础介绍] Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8中基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字 ...

  3. Lua 学习笔记(二)语法、类型、值

    首先Lua执行的每一段代码都称之为“程序块”,一个程序块也就是一连串的语句或命令,例如一个源码文件或一行代码.Lua语句之间并不需要分隔符,如代码中的换行就不起任何作用,当然为了养成编码习惯当两条或者 ...

  4. lua学习之table类型

    关系表类型,这是一个很强大的类型.我们可以把这个类型看作是一个数组.只是 C语言的数组,只能用正整数来作索引: 在Lua中,你可以用任意类型的值来作数组的索引,但这个值不能是 nil.同样,在C语言中 ...

  5. php学习日志(5)-解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常

    以前用Windows Live Writer写日志都好好的,前几天用写完日志,点击发布,突然弹出意外错误:“WindowsLive.Writer.CoreServices.HttpRequestHel ...

  6. 《JS权威指南学习总结--第三章类型、值和变量》

    第三章 类型.值和变量 内容要点 一.数据类型 1.在编程语言中,能够表示并操作的值的类型称做数据类型 2.JS的数据类型分为两类: 原始类型:数字.字符串和布尔值 对象类型 3.JS中有两个特殊的原 ...

  7. Lua学习笔记一

    学习了有一周多了.之前一直不想献丑,但还是记录下这个过程. 第1章  开发软件搭建 1. ubuntu 下lua安装 sudo apt-get install lua5.1 2.win下的环境搭建. ...

  8. lua学习项目笔记

    这几天草草的浏览了一下电子版的<lua程序设计>,没有懂的地方就自动忽略了,挑拣了一些可以理解的部分一直在推进.推进至后面的时候已经浑浑噩噩的了,有种想看完这本书的强迫症的感觉.推进CAP ...

  9. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

随机推荐

  1. Jquery屏蔽浏览器的F1-F12快捷键,在IE,GOOGLE下测试均无问题

    在网上找了找,很多都是js实现的,东找西找,再加上自己的想法也勉强的完成了,直接看代码 <script type="text/javascript" src="Sc ...

  2. 10:django 模板语言

    Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个 ...

  3. hihocoder 1177 : 顺子

    #1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的 ...

  4. Volatile arrays in Java

    Volatile arrays in Java A slight complication of Java volatile fields, and one sometimes overlooked, ...

  5. node-session

    session cookie 虽然很方便,但是使用 cookie 有一个很大的弊端,cookie 中的所有数据在客户端就可以被修改,数据非常容易被伪造,那么一些重要的数据就不能存放在 cookie 中 ...

  6. mysql-表完整性约束

    阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 总结     一 介绍 回到顶 ...

  7. Qtp中一个或多个ActiveX控件无法显示问题

    今天在使用qtp进行登陆测试的时候,发现了一个问题,现总结归纳如下: [问题] 在测试过程中,一直提醒:一个或多个ActiveX控件无法显示,原因可能是下列其中之一: 如下图所示: [解决办法] 在Q ...

  8. AC日记——旅游 bzoj 2157

    2157 思路: LCT: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 400005 #define IN ...

  9. sizeof(类)

    类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的. 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小.首先:我们要知道什么是类的实例化,所谓类的实例化就是在内存中分配 ...

  10. 【BZOJ 2802】 2802: [Poi2012]Warehouse Store (贪心)

    2802: [Poi2012]Warehouse Store Description 有一家专卖一种商品的店,考虑连续的n天.第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择 ...