在Lua中,有哪些不同的打印形式?

Jua*_*eda 3 lua

print()我正在学习Lua,我想知道and=print()and的区别io.write()

小智 5

《Programming in Lua》中的这段简短的段落解释了一些差异:

21.1 简单I/O模型

与 不同的是printwrite不会向输出添加额外的字符,例如制表符或换行符。此外,write使用当前输出文件,而print始终使用标准输出。最后,print 自动应用于tostring其参数,因此它还可以显示表、函数和nil.

还有以下推荐:

通常,您应该将 print 用于快速而肮脏的程序或调试,并在需要完全控制输出时使用 write

本质上,使用当前输出文件io.write调用方法,相当于writeio.write(x)io.output():write(x).

而且由于print只能将数据写入标准输出,其用途显然受到限制。同时,这保证了消息始终进入标准输出,因此您不会意外地弄乱某些文件内容,使其成为调试输出的更好选择。

另一个区别在于返回值:printreturns nil, whileio.write返回文件句柄。这允许您像这样链接写入:

io.write('Hello '):write('world\n')
Run Code Online (Sandbox Code Playgroud)