【发布时间】:2016-06-22 02:18:14
【问题描述】:
lua 中的隐式函数和显式函数有什么区别?我在阅读有关 Lua 中的文件操作时遇到了这些术语。隐式函数前面有 io.like io.read()而显式函数看起来像 file:read()。尽管书中说,我对区别一无所知
两者的区别在于隐式函数作用于
io命名空间提供的默认文件,而显式 函数使用以前提供的文件句柄 操作,如io.open
有什么更好的解释吗?
【问题讨论】:
标签: lua
lua 中的隐式函数和显式函数有什么区别?我在阅读有关 Lua 中的文件操作时遇到了这些术语。隐式函数前面有 io.like io.read()而显式函数看起来像 file:read()。尽管书中说,我对区别一无所知
两者的区别在于隐式函数作用于
io命名空间提供的默认文件,而显式 函数使用以前提供的文件句柄 操作,如io.open
有什么更好的解释吗?
【问题讨论】:
标签: lua
io.read 从默认输入文件中读取。
默认输入文件是stdin,但您可以通过调用io.input来更改它。
您还可以使用io.open 显式打开文件,并在方法调用中使用返回的句柄,例如f:read()。
io.read() 等价于io.input():read()。
【讨论】:
io 函数的约定,一般不适用于 Lua 函数。