ここでは簡単な Ruby プログラムを書いてみます。プログラムにユーザーのお気に入りの番号を尋ねさせてから、1 つ大きい新しいお気に入りの番号を提案させようとしています。以下のコードの何が問題になっていますか?
puts "hey, whats your favorite number?"
favnumber = gets.chomp
newfavnumber = favnumber.to_i + 1
puts "how about " + newfavnumber "?"
ここでは簡単な Ruby プログラムを書いてみます。プログラムにユーザーのお気に入りの番号を尋ねさせてから、1 つ大きい新しいお気に入りの番号を提案させようとしています。以下のコードの何が問題になっていますか?
puts "hey, whats your favorite number?"
favnumber = gets.chomp
newfavnumber = favnumber.to_i + 1
puts "how about " + newfavnumber "?"
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この方法では、内部で任意のタイプを使用できるため、呼び出す必要はありません#{}。
+afternewfavnumberと文字列への変換がありません。
puts "how about " + newfavnumber.to_s + "?"