013-热更新之lua语言六

学习到现在我们对lua也是具有很深的了解,知道lua是热更新的重要语言,所以我们要继续学习lua。今天我们学习的是lua文件

Lua文件 I/O

其实这个都是我们是很熟悉的,它的内容也没有多少。记得我们在考江苏二级的时候,最后一题总是会考这个,其中最有名的是printf与fprintf了。只要知道一个是往控制台输出,一个是往文件输出就行了,他们的本质是没有什么区别的,所以我们就简单的把程序过一遍。

其实方法还是有很多的,但是他们的步骤其实与上面是一样的,所以我们在这里就不写了,接下来在下面把其他的一些东西做一些简单的说明,只是来了解一下,不需要记忆,在不会的时候只用来看看就行了。

r以只读的方式打开文件,该文件必须存在。

w打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

a以附加的方法打开只写文件。如文件不存在,则会建立该文件,如果文件存在,写入的数据会加到文件尾,即文件原来的内容会被保留。

r+以可读写方式打开文件。该文件必须存在。

w+打开可读写文件,如文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

a+与a类似,但该文件可读可写。

在以上实例中我们使用了io.x方法,其中io.read()中我们没有带参数,参数可以是下表中的一个:

"*n"读取一个数字并返回它。例:file.read("*n")

"*a"从前面位置读取整个文件。例:file.read("*a")

"*|"(默认)读取下一行,在文件尾(EOP)处返回nil。例如:file.read("*|")

number 返回一个指定字符个数的字符串,或在EOP时返回nil。例如:file.read(5)

好了,以上就是我们要知道的I/O的部分了。

lua的最后一个部分要来了,终于lua的部分全部要结束了,想想还是有点小激动呢?这个部分到底是什么呢?好了,不卖关子了,就是面向对象了。对于面向对象我们可以再熟悉不过了,每天都要与它打交道。的确面向对象的效率比面向过程要简单一些,所以我们有必要学的,所以今天的最后一个部分我们就来讲讲lua中的面向对象了。如果在将之前,我们还是来看看官方的说明吧。

1封装:指能够把一个实体的信息、响应都装入一个单独的对象中的特性。

2继承:继承的方法允许在不改变原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得扩展。这有利于减少重复编码,提供软件的开发效率。

3多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

4抽象:抽象是简化复杂的现实问题的途径,它可以为具体问题找到最恰到的类定义,并且可以在最恰当的继承级别解释问题。

我们知道,对象由属性和方法组成。lua中最基本的结构是table,所以需要用table来描述对象的属性。lua中的function可以用来表示方法。那么lua中的类可以通过table+function模拟出来。至于继承,可以通过metatable模拟出来(不推荐用,只模拟最基本的对象大部分时间够用了)。lua中的表不仅在某种意义上是一种对象。像对象一样,表也有状态(成员变量);也有与对象的值独立的本性,特别是拥有两种不同值的对象(table)代表两种不同的对象,但他始终是一个对象;与对象类似,表的生命周期与其由什么创建、在哪创建没有关系。

猜你喜欢

转载自www.cnblogs.com/jake-caiee/p/9810616.html