在ruby中打印功能

时间:2010-12-11 08:06:38

标签: ruby gets

我是红宝石初学者。我有以下代码,询问用户他的名字并打印回来。

print 'Enter your name : '
name = gets()
print("Hey,#{name} !")

如果我输入John Doe作为名称,输出如下

Hey,John Doe
!
print不同的

puts在输出后不会自动添加新行但我注意到在上述情况下,我在#{name}之后输入的任何内容都会在新行上打印。为什么会这样?

2 个答案:

答案 0 :(得分:5)

gets()正在返回按Enter键导致的换行符。尝试name = gets().chomp将其修剪掉。

答案 1 :(得分:1)

如果您使用的是OS X,并在irb中运行,您也可以输入“John Doe”,然后按两次control + d。

我认为windows的等价物是control + z。

此外,如果您执行了print name.inspect,那么您确定name包含换行符 - 它会打印出"John Doe\n"