零基础学lua第十五天---最后归纳下
作者:互联网
一、前言
本篇是小编对于学习lua的一个总结,至此我们就告一段落了,下面请看涉及到lua的一些其它内置函数。
二、setfenv、getfenv这两个函数的设定主要是为了解决变量命名时的重复冲突所存在的,有了他们,即使变量重复也不会被覆盖;因此,我们需要先设置一个函数的环境,如下:
可以看到,我们把函数aa放到了表中,然后就可以通过函数环境来获取到表中的值。相当于aa就是键,而ff就是值,我们可以通过获取函数环境的函数来获取到ff的值。当然setfenv不仅仅可以用函数来作为键,也可以使用数字来作为键,从1开始,1为当前函数,2为调用自己的函数,3则是调用自己函数的函数,依次类推,如下:
此时我们可以看到,使用系统函数print打印报错了;其实这是因为我们将正在调用getfenv这个函数的函数设置到了一个空table中,因此我们需要使用全局变量来进行访问,如下:
此时就可以正常访问,不过如果你脱离了ff,任何变量都是无法正常访问的。
三、loadstring前面我们在读取lua模块的时候使用过load loadfile ,不过lua中还有个loadstring函数我们还没了解过,下面请看:
可以看到,其实loadstring的功能就和eval差不多,都是可以执行字符串中的内容。
四、select这个函数可以返回指定索引后的所有值,当然这个索引必须小于值的长度,否则无效,如下:
如果你想要知道总共有多少个返回参数的话,可以把数字换为#即可,如下:
五、随机数这个概念在编程时显得尤为重要,很多时候都会用到随机数,随机数存在于数学函数中,之所以没把数学函数拿出来单独讲,主要是因为太过于简单,没什么讲的必要,在这里我们只讲讲随机数,如下:
随机数函数里没有值则返回从0到1的小数,有的话就返回固定范围内的整数,如果我们想要随机数一直保持不变就需要给他设置一个随机数种子,如下:
这样就不会改变了。
六、utf8编码新的lua版本支持utf8编码,这里lua5.4完美支持,它可以直接将一些字符串或者数字转换为utf8编码,如下:
七、cmd输入输出我们之前使用输入输出只是对文件进行了操作,其实我们还可以通过cmd来进行输入输出,如下:
这样就可以将输入的数字返回了,这样可用于用户交互。
八、总结
到这里lua的基础知识就全部讲完了,相信大家一定有很多收获吧,虽然lua内置的模块并没有多少功能,一切都是以三方的模块或者调用c语言为主,但是还是挺简单的。
标签:函数,可以,如下,---,lua,随机数,第十五天,我们 来源: https://blog.51cto.com/u_9736252/2807901