我是红宝石初学者。我有以下代码,询问用户他的名字并打印回来。
print 'Enter your name : '
name = gets()
print("Hey,#{name} !")
如果我输入John Doe作为名称,输出如下
Hey,John Doe
!
与print
不同的 puts
在输出后不会自动添加新行但我注意到在上述情况下,我在#{name}
之后输入的任何内容都会在新行上打印。为什么会这样?
答案 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"
。