Lua 关于可变参数和string.format的问题

function fwrite(fmt,...)
   return io.write(string.format(fmt,unpack(arg)))
end
print(fwrite(1,string.find("dubowen","bowe")))

结果是1true

这个结果在我预料之外,不知道为什么会是这个。
主要string.format我理解的也不好。

阅读 6.8k
1 个回答

你什么版本的lua?

5.2.3版本打印1file (0x7f592ee78280) (括号中的数据每次运行都不同).

首先string.format(fmt,unpack(arg))返回1(这个你应该知道为什么吧?)

io.write1输出到屏幕(所以打印结果中有个1),
然后io.write返回output file descriptor, print打印这个output file descriptor就是类似于file (0x7f592ee78280)这样的值.

所以最终看到的打印1file (0x7f592ee78280)其实分别是有io.wirte打印的1print打印的file (0x7f592ee78280)组合结果.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进