1

ruby初心者です。ユーザーに名前を尋ねてそれを出力する次のコードがあります。

print 'Enter your name : '
name = gets()
print("Hey,#{name} !")

名前として John Doe と入力すると、出力は次のようになります。

Hey,John Doe
!

printとは異なりputs、出力の後に自動的に新しい行を配置することはありませんが、上記の場合、後に入力したものはすべて新しい行に出力されることに気付きました#{name}。これはなぜですか?

4

2 に答える 2

5

gets()エンターキーを押したために発生した改行を返しています。切り捨ててみname = gets().chompてください。

于 2010-12-11T08:09:38.520 に答える
1

OS X を使用していて、これを irb で実行している場合は、「John Doe」と入力してから、control + d を 2 回押すこともできます。

Windows に相当するのは control+z だと思います。

また、もしそうなら、改行が含まれprint name.inspectていることが確実にわかります-それは出力されます.name"John Doe\n"

于 2010-12-11T09:01:35.063 に答える