Lua io.write() 对比 print 函数, 简单 I/O 模式

 原文链接:http://blog.csdn.net/zhangxaochen/article/details/8086647

1. 先说 io.write() vs. print(), 举例如下:看这里: http://is.gd/VoBVUJ

io.write("sin(3)= ", math.sin(3), '\n') ----- 输出 sin(3)= 0.14112000805987


 函数的参数个数可变, 只要使用逗号分隔即可。 不过参数不能是 nil, 否则报错, 像这样:
 lua: hello.lua:4: bad argument #4 to 'write' (string expected, got nil)
 
 io.write 这么用也是对的:

 io.write(a..b..c)  ----".." 表示连接两个字符串


 这跟 io.write(a, b, c) 的输出效果相同。但是我们应该避免第一种写法, 原因是“..”字符串连接行为会消耗更多的资源。
 
 print 函数的调用会附加一些格外的格式, 比如:
 print(a,b)
 他会在 a,b 之间插入 \t 制表符, 并且结尾自动回车; 另外 print 会自动调用参数的 tostring 方法, 因此他可以调试的时候输出 table, function, nil。
 注意: io.write 因为原样输出参数, 没有调用 tostring, 因此如果像这样: io.write({}) 也会报错,说参数应该是 string, 不能是 table
 
2. 简单 I/O 模式
 io.write, io.read 是一对。 默认情况下, 他们从 stdin 读输入, 输出到 stdout。
 另有两个函数可以改变这一默认行为:
 io.input("xx"), io.output("yy")
 他们改变输入为某个 xx 文件, 输出到 yy 文件。 举例:

 -----写在 hello.lua 里:
 io.input("hello.lua")
 t=io.read("*all")
 io.write(t, '\n')  ------输出整个 hello.lua 文件的内容到 stdin


 
 这里 io.read() 的参数 "*all" 表示读取整个文件作为一个字符串。 类似有:
 
 "*all"  →读取整个文件
 "*line"  →读取下一行
 "*number" →从字符串中转换出一个数值
 num   →读取 num 个字符

 
 如果 io.read() 没有参数, 默认读取一行
 原文链接:http://blog.csdn.net/zhangxaochen/article/details/8086647


 {{OVER}}
 
 
 
 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值