Lua中隐式和显式io命名空间函数的区别

Lua中隐式函数和显式函数的确切区别是什么?我在阅读有关Lua文件操作时遇到了这些术语。隐式函数以io.开头,如io.read(),而显式函数看起来像file:read()。尽管书中说:

两者的区别在于隐式函数可以在io命名空间提供的默认文件上工作,而显式函数可以使用之前的操作提供的文件句柄,例如io.open

但我一无所知。有更好的解释吗?

点赞
用户107090
用户107090

io.read 从默认输入文件中读取。

默认输入文件为 stdin,但您可以通过调用 io.input 来改变它。

您还可以使用 io.open 显式打开一个文件,然后在方法调用中使用返回的句柄,如 f:read()

io.read() 等价于 io.input():read()

另请参见 http://www.lua.org/manual/5.2/manual.html#6.8

2014-04-04 11:19:36