0

私は現在、友人と演習 14 に取り組んでいます。これは、非常に単純な文字列補間とユーザー入力の取得です。私のコードは次のようになります。

user_name = ARGV.first                                                          
prompt = '> '

puts "Hi #{user_name}."
puts "I'd like to ask you a few questions."
puts "Do you like me #{user_name}? ", prompt
likes = $stdin.gets.chomp

puts = "Where do you live #{user_name}? ", prompt
lives = $stdin.gets.chomp

puts "What kind of computer do you have? ", prompt
computer = $stdin.gets.chomp

puts """
Alright, so you said #{likes} about liking me.
You live in #{lives}. Not sure where that is.
And you have a #{computer} computer. Nice.
"""

かなり単純に動作するはずですが、私が見つけたのは、likes=行の後に、「どこに住んでいますか」を求める次の行が画面に表示されないにもかかわらず、lives=プロンプトが表示されることです。つまり、「いいね」を入力した直後に、以前のプロンプト出力を表示せずに「ライン」プロンプトにジャンプします! で始まる次のプロンプトはcomputer=、期待どおりに機能します。

Ruby 2.1.2 を使用していますが、2.2.3 でも同じ動作が見られます。オンライン REPLはこちら

なぜこれが起こるのですか?

4

1 に答える 1

2

8 行目の puts の後に=があります。これを削除すると、問題が解決するはずです。

于 2015-09-30T20:39:23.470 に答える