Ответ 1
gets()
возвращает новую строку, вызванную нажатием клавиши ввода. Попробуйте name = gets().chomp
отрезать его.
Я новичок в рубине. У меня есть следующий код, который запрашивает у пользователя его имя и распечатывает его.
print 'Enter your name : '
name = gets()
print("Hey,#{name} !")
Если я введу John Doe в качестве имени, вывод будет следующим образом
Hey,John Doe
!
print
В отличие от puts
автоматически не выводит новую строку после вывода, но я заметил, что в приведенном выше случае все, что я ввожу после #{name}
, печатается на новой строке. Почему это так?
gets()
возвращает новую строку, вызванную нажатием клавиши ввода. Попробуйте name = gets().chomp
отрезать его.
Если вы находитесь на OS X и запускаете это в irb, вы также можете ввести "John Doe", а затем дважды нажать Ctrl + d.
Я думаю, что эквивалент для окон - это control + z.
Кроме того, если вы сделали print name.inspect
, вы наверняка узнаете, что name
содержит новую строку - он распечатает "John Doe\n"
.