1

ここでは簡単な Ruby プログラムを書いてみます。プログラムにユーザーのお気に入りの番号を尋ねさせてから、1 つ大きい新しいお気に入りの番号を提案させようとしています。以下のコードの何が問題になっていますか?

puts "hey, whats your favorite number?" 

favnumber = gets.chomp 

newfavnumber = favnumber.to_i + 1 

puts "how about " + newfavnumber "?"
4

2 に答える 2

2
puts "how about " + newfavnumber "?"

まず第一に、おそらくそこの+前にが欲しかったでしょう"?"。これが現在書かれている方法では、 として解析されputs("how about " + newfavnumber("?"))ます。つまり、 という関数を呼び出していますがnewfavnumber、これは明らかに望んでいるものではありません。

ただし、puts "how about " + newfavnumber + "?"おそらく意図したとおりに変更しても、まだ機能しません。newfavnumberは数値で"how about "あり、文字列です。Ruby では、文字列に数字を追加することはできません。これを修正するには、文字列に変換するようにto_s要求できます。newfavnumber

これを記述するより良い方法は、文字列補間を使用することです: puts "how about #{newfavnumber}?". to_sこの方法では、内部で任意のタイプを使用できるため、呼び出す必要はありません#{}

于 2012-04-06T00:06:58.783 に答える
1

+afternewfavnumberと文字列への変換がありません。

puts "how about " + newfavnumber.to_s + "?"
于 2012-04-05T23:54:53.727 に答える