lua学习
文章平均质量分 62
午饭要阳光
热爱编程
展开
-
require和dofile的区别
1在lua中require和dofile都是用来加载和执行模块的,那么他们有什么不同呢???差异: 在加载一个.lua文件的时候,require会先在package.loaded中查找此模块是否存在,如果存在则直接返回模块,如果不存在,则加载此模块。 dofile会对读入的模块编译执行,每调用dofile一次,都会重新编译执行一次。 require它的参数只是文件名,而dofi原创 2017-10-18 14:35:15 · 5316 阅读 · 0 评论 -
lua中的闭包
1、在了解lua中的闭包之前,我们先来看一个栗子!!! 在上述例子当中,我们用lua的闭包实现了一个计数器。如果之前没有了解过闭包的概念的话,你一定会对上述代码的结果感到奇怪,下面我们就来详细的解释一下闭包。2、第一类值(First class value ) lua中的函数就是所谓的”第一类值”。 在lua中定义一个函数就像创建普通类型值一样,lua中的函数就是一个值,它可以被存放在变量原创 2017-10-19 21:17:21 · 1553 阅读 · 2 评论 -
lua学习笔记(1)
一、table Table=数组+映射 在lua中,table是数组和映射为一体的数据类型,table既可以当做数组使用,也可以当做映射来使用。1、声明一个table类型 用花括弧{}来声明一个table 例:a={}2、table的赋值 table可以在定义的时候直接赋值,例: a={1,2,3,} 也可以单独赋值,但是注意table的下标必须是连续的,且从1开始,没有赋值原创 2017-10-27 20:56:04 · 1355 阅读 · 0 评论 -
lua学习笔记—table
1、什么是table table是lua的一种数据结构,可以用来创建数组或映射。lua中的table使用的是关联型数组。关联数组的key值可以是除过nil之外任意类型的值。table的大小是不固定的,可以自己进行扩容。2、如何构造table 可以使用”{}”来构造一个空表,还可以在构造的同时进行初始化。 例1:用table创建数组,在lua中数组下标默认从1开始 结果原创 2017-10-28 17:44:08 · 1345 阅读 · 0 评论 -
lua学习笔记——元表(Metatable)
1、什么是元表 table是lua中一个重要的数据结构,我们可以访问table内的值,但是却无法对两个table进行操作。因此lua提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。 元表就类似于C++中的运算符重载,可以对类对象进行操作,当然元表的功能更强大一些。有两个很重要的函数来处理元表: setmetatable(table,m原创 2017-11-07 17:38:18 · 1722 阅读 · 0 评论 -
lua学习笔记——文件I/O
1、lua中的文件I/O lua的文件I/O有两种模式,分别是简单模式和完全模式,他们的区别如下: 简单模式:只有一个默认输入文件和一个默认输出文件,并且提供对这些文件的操作。 完全模式:使用外部的文件句柄来实现。它以一种面向对象的形式,将所有文件操作定义为文件句柄的方法。完全模式可以同时对多个文件进行操作。2、打开和关闭文件 打开文件:file=io.open(filename,原创 2017-11-19 16:12:20 · 1913 阅读 · 1 评论 -
lua学习笔记——coroutine
1、什么是协同程序 Lua中的协同程序(coroutine)与线程比较类似,拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其他大部分东西。 协同程序与线程的区别: 线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且在这个正在运行的协同程序只有在明原创 2017-11-15 15:49:48 · 956 阅读 · 0 评论