前言
今天的函数可以看作是用来执行代码块的,只不过他的参数是文件名或者是标准输入,可以保一块代码放入一个文件中,由这个函数一次执行获得返回结果,接下来我们一起来看一下函数的使用方法。
内容#
dofile()##
- 原型:dofile([filename])
- 解释:按参数
filename
提供的文件名打开一个文件并将其内容作为一个Lua程序块执行,当省略参数fielname
时,函数默认把标准输入的内容作为程序块执行,执行结束后函数会把程序块返回的所有值作为函数的返回值返回,如果执行过程中发生了错误,函数会将错误向上跑出给它的调用者(当函数dofile()
不是运行在保护模式的状态下)。
usage##
- 首先我们新建一个文件将文件命名为dofiletest.lua然后编写代码,今天的代码非常简单,调用了上一章的测试文件:
-- 调用上一章的测试文件
dofile("collectgarbagetest.lua")
-- 把标准输入作为程序块输入
dofile()
- 运行结果
总结#
- 由结果可以看出这个函数确实可以把文件collectgarbagetest.lua完整执行一遍,collectgarbagetest.lua代码参考上一篇文章Lua base collectgarbage。
- 当省略参数
filename
时,函数也可以把标准输入作为函数输入,其中的“print("hehe")”就是我手动输入的,输入完成后按快捷键Ctrl+C结束输入,结果可以正常打印。