例如,在我写的这行代码中,print和put会产生不同的结果。
1.upto(1000).each { |i| print i if i % 2 == 0 }
例如,在我写的这行代码中,print和put会产生不同的结果。
1.upto(1000).each { |i| print i if i % 2 == 0 }
当前回答
Puts调用每个参数的to_s,并向每个字符串添加一个新行,如果它不以new line结束。 Print只是通过调用它们的to_s来输出每个参数。
例如: 写上“一二”: 一个两个
{新行}
输入“一二\n”: 一个两个
{new line} #put不会向结果中添加新行,因为字符串以新行结束
打印“一二”: 一个两个
打印“一二\n”: 一个两个
{新行}
还有另一种输出方式:p
对于每个对象,直接写入obj。Inspect后面跟着一个换行符指向程序的标准输出。
有助于输出调试信息。 P "aa\n\t": aa\n\t
其他回答
如果已经没有参数,则Puts在每个参数的末尾添加新行。
打印不会添加新行。
例如:
put [[1,2,3], [4,5,nil]]将返回:
1 2 3 4 5
而print [[1,2,3], [4,5,nil]] 将返回:
[[1,2,3], [4,5,nil]]
注意为什么puts不输出nil值,而print输出。
Print输出每个参数,后跟$,,到$stdout,后跟$\。它等价于args.join($,) + $\
将$和$\设置为"\n",然后执行与print相同的操作。关键的区别在于,每个参数都是包含看跌期权的新行。
你可以要求“english”来访问那些具有用户友好名称的全局变量。
Puts调用每个参数的to_s,并向每个字符串添加一个新行,如果它不以new line结束。 Print只是通过调用它们的to_s来输出每个参数。
例如: 写上“一二”: 一个两个
{新行}
输入“一二\n”: 一个两个
{new line} #put不会向结果中添加新行,因为字符串以新行结束
打印“一二”: 一个两个
打印“一二\n”: 一个两个
{新行}
还有另一种输出方式:p
对于每个对象,直接写入obj。Inspect后面跟着一个换行符指向程序的标准输出。
有助于输出调试信息。 P "aa\n\t": aa\n\t
一个很大的区别是你是否显示数组。 尤其是NIL的。 例如:
print [nil, 1, 2]
给了
[nil, 1, 2]
but
puts [nil, 1, 2]
给了
1
2
注意,没有出现nil项(只是一个空行),每个项在不同的行上。
如果你想使用puts在字符串中输出数组,你将得到与使用print相同的结果:
puts "#{[0, 1, nil]}":
[0, 1, nil]
但如果不是在一个带引号的字符串中,那么是。唯一的区别是当我们使用看跌期权时,换行。