1

到目前为止,我一直在要求用户发送一个整数(从选项中: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]"}, 
]

如何将原始输入返回给用户,例如,如果他们通过键入 07May90 来回答 DoB 问题,我想说“您选择了 07May90”。(正如刚才提到的)。

4

1 回答 1

0

想到的一种方法是使用sprintf

message = "You picked %s"
value = "07May90"
puts sprintf(message, value)

请注意,这并不是特别漂亮,但它会起作用。

于 2014-07-15T23:30:56.847 回答