ruby中的打印function

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

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

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

 Hey,John Doe ! 

print不同于puts不会在输出后自动添加新行但我注意到在上面的例子中我在#{name}之后输入的任何内容都打印在一个新行上。 为什么会这样?

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

如果你在OS X上,并在irb中运行它,你也可以输入“John Doe”,然后按两次control + d。

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

此外,如果您确实print name.inspect ,那么您肯定会发现该name包含换行符 – 它会打印出"John Doe\n"