Lua学习日记一
来源:互联网 发布:淘宝直播怎么调清晰度 编辑:程序博客网 时间:2024/05/19 02:19
在lua中删除一个全局变量,只需要将变量赋值为nil
例:b = nil
因此,当且仅当一个变量不等于nil时,这个变量即存在!
在默认情况下,变量总是认为是全局的。全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局也不会出错,不过得到的结果是nil
Lua是动态类型语言,变量不要类型定义,只需要为变量赋值,值可以存储在变量中,作为参数传递或结果返回。Lua中有8个基本类型,分别为:nil,boolean,number,string,userdata,function,thread和table。
nil 属于该类,表示一个无效值(false)
boolean 包含2个值:false和true
number 表示双精度类型的浮点数
string 字符串由一对双引号或单引号来表示,也可以用2个方括号“[[ ]]”来表示“一块”字符串
function 由C或Lua编写的函数
userdate 表示任意存储在变量中的C数据结构
thread 表示执行的独立线路,用于执行协同程序
table 关联数组,数组的索引可以是数字或字符串,在Lua中,table的创建是通过“构造表达式”来完成,最简单的构造表达式是{ },用来创建一个空表,无法直接声明
number:double(双精度)类型(默认类型可以修饰luaconf.h里的定义)
在对一个数字字符串上进行算术操作时,Lua会 尝试将这个数字字符串转换成一个数字
例:print(" 2"+6)
out : 8
字符串连接使用的是 “ ..” ,如:
例:print("a" .. "b")
out : ab
print (123 .. 456)
out : 123456
使用#来计算字符串的长度,放在字符串前面
例:len = "www.baidu.com"
print (#len)
out : 13
不同于其他语言的数组把0作为数组的初始索引,在Lua里表的默认初始索引一般以1开始。
table不会固定长度大小,有新数据添加时,table长度会自动增长,没初始化的table都是nil。
在异常情况下,可以返回一个nil以区别于其他正常的返回值
Lua中除nil和false以外都为真,0和空字符串也都是真
Lua中string可以将任意二进制数据存储到一个字符串中
Lua的字符串中是不可变的值。不能像在C语言中那样可以直接修改字符串中的某个字符,而是应该根据修改要求来创建一个新的字符串
Lua的字符串和其他Lua对象(例如table或函数等)一样,都是自动内存管理机制所管理的对象。这表示无需担心字符串的分配和释放,Lua处理这些事情。
如今,仍不能确定在Lua的设计中,这些自动的强制类型转换是否算是一项好的设计,建议最好不要依赖它们。虽然在某些地方这些强制转换显得很便利,但它们也给语言和使用它们的程序带来了负责性。毕竟,字符串和数字是两种不同的东西。比较运算10 == “10"总为false,因为10是一个数字,而“10”是一个字符串。如果需要显式地将一个字符串转换成数字,可以使用函数tonumber。当这个字符串的内容不能表示一个正确的数字时,tonumber将返回nil。若要将一个数字转换成字符串,可以调用函数tostring,或者将该数字与一个空字符串相连。
例:print (10 .. "" == "10")
out : true
table永远是“匿名的(anonymass)”,一个持有table的变量与table自身之间没有固定的关联性。当一个程序再也没有对一个table的引用时,Lua的垃圾收集器最终会删除该table,并复用它的内存。
- Lua学习日记一
- Lua学习日记1
- Lua学习日记二
- PHP学习日记一
- DODS学习日记(一)
- Ajax学习日记一
- ActiveDirectory学习日记(一)
- Java学习日记(一)
- Mybatis学习日记(一)
- java学习日记一
- android学习日记一
- Play! 学习日记一
- java学习日记一
- Go学习日记<一>
- Mybatis学习日记(一)
- Structs2学习日记一
- Arduino学习日记一
- python学习日记(一)
- [Android]Android studio编译程序时报错: error: use of undeclared identifier ’free free(t);
- Spring—BeanNameAware、BeanFactoryAware
- shell脚本 日期
- 第十一周项目一
- Android使用Https请求,双向认证、app端配置
- Lua学习日记一
- 设计模式-创建模式之Prototype(Clone)
- C# SqlConnection-ConnectionString用法
- 【深度学习框架Caffe学习与应用】第二课
- 乐观锁与悲观锁区别
- 三菱 PLC 485通讯模块 接线
- tomcat启动的时候为什么会有一个java.exe进程and如何在tomcat配置java环境
- Android屏幕横竖屏切换和生命周期管理的详细总结
- android开发之微信支付功能的实现