Подтвердить что ты не робот

Как получается и получает.Часть в рубиновой работе?

Я узнал, что gets создает новую строку и просит пользователя что-то ввести, а gets.chomp делает то же самое, кроме того, что не создает новую строку. gets должен возвращать объект, поэтому вы можете вызвать метод на нем, правильно? Если это так, давайте назовите этот объект, возвращаемый gets как tmp, затем вы можете вызвать метод chomp tmp. Но прежде чем gets возвращает tmp, он должен напечатать новую строку на экране. Итак, что делает chomp? Удаляет ли новую строку после создания gets?

Еще один способ повторного изложения моего вопроса: выполняются ли следующие действия при вызове gets.chomp?

  • gets печатает новую строку
  • gets возвращает tmp
  • tmp.chomp удаляет новую строку
  • Пользовательский ввод

Правильно ли это?

4b9b3361

Ответ 1

gets позволяет пользователю вводить строку и возвращает ее в качестве значения для вашей программы. Это значение включает разрыв трейлинг-линии. Если затем вызывать chomp по этому значению, этот разрыв строки отключается. Так что нет, что у вас там есть неправильно, скорее это будет:

  • gets получает строку текста, включая разрыв строки в конце.
    • Это пользовательский ввод
  • gets возвращает эту строку текста в виде строкового значения.
  • Вызов chomp по этому значению удаляет разрыв строки

Тот факт, что вы видите текст на экране только потому, что вы ввели его там, в первую очередь. gets не магически подавляет вывод введенных вами вещей.

Ответ 2

Вопрос не должен быть, если это правильный порядок, но больше, если это правильный способ приблизиться к этому. Это то что ты делаешь.

Взгляните на это, это более или менее то, что вы хотите "достичь". Во-первых, вы назначаете переменную с именем tmp возвращаемое значение gets. Затем вы вызываете chomp (как описано в документации по Ruby) на этом объекте, и вы можете видеть, что chomp удалил новую строку. Фактически, что делает chomp, удаляет символ Enter в конце строки. Когда вы набираете h e l l o, каждый char за раз, а затем нажмите Enter получает все буквы и Enter. Помните, что Enter - это еще один символ.

1. tmp = gets
hello
=>"hello\n"

2. tmp.chomp
"hello"

gets есть ваш пользовательский ввод. Также хорошо знать, что gets или puts, означают get string * или put string для puts. Это означает, что эти методы имеют дело только с strings.

Ответ 3

chomp - это метод удаления завершающего символа новой строки i.e. '\n' из строки. всякий раз, когда "получает" используется, чтобы взять i/p от пользователя, он добавляет новый символ строки, то есть "\n" в конце строки. Поэтому, чтобы удалить "\n" из строки " chomp", используется.

str = "Hello ruby ​​\n"

str = str.chomp

puts str

о/р

"Hello ruby"

Ответ 4

возьмем пример 1.

x = gets
y = gets
puts x+y

2.

 x = gets.chomp
 y = gets.chomp
 puts x+y

теперь выполняйте 1 и 2 отдельно и видите разницу. Если вы