Запись и отправка пользовательского ввода
До сих пор я просил пользователя отправить целое число (из вариантов: 1, 2, 3, 4 или 5) в качестве возможного ответа на сообщения. Затем я возвращаю пользователю выбор целого числа, прежде чем перейти к следующему сообщению. Поэтому мои сообщения имели следующую структуру:
Messages = [
{"1"=>"You chose 1.",
"2"=>"You chose 2.",
"message"=> "Pick 3 or 4. 3) Apples 4) Oranges."},
{"3"=>"You chose Apples.",
"4"=>"You chose Oranges.",
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"},
]
Я передаю свои сообщения следующим вызовом:
say "#{messages[$status.to_i][$reply]} #{messages[$status.to_i]['message']}"
Теперь мне нужно, чтобы пользователь ввел что-то оригинальное, например, скажем, его / ее дату рождения (например, 07May90 может быть возможным полным вводом). Поэтому мне нужно следующее, чтобы быть в этом деле.
Messages = [
{"1"=>"You chose 1.",
"2"=>"You chose 2.",
"message"=> "What is your date of birth?"},
{"DoB"=>"You chose [whatever user inputs e.g. 07May90].",
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"},
]
Как я могу вернуть исходные данные пользователю, например, если он ответил на вопрос DoB, набрав 07May90, я хотел бы сказать: "Вы выбрали 07May90". (как уже упоминалось выше).
1 ответ
Один способ, который приходит на ум, будет использовать sprintf
message = "You picked %s"
value = "07May90"
puts sprintf(message, value)
Это не особо красиво, но это сработает.