目的は、3つの別々の番号を入力してスクリプトにハッシュに格納し、値を出力してからハッシュにすべての数値を追加させます。私が取り組んでいるスクリプトはエラーを出し続けており、私はそれを修正する方法についていくつかの指針を期待していました。Rubyでユーザー入力を使用してハッシュを作成する必要があります
#!/user/bin/ruby
userhash=Hash.new()
puts "Enter first number"
userhash=[:num1=>gets.chomp]
puts "Enter second number"
userhash=[:num2=>gets.chomp]
puts "Enter third number"
userhash=[:num3=>gets.chomp]
puts "The numbers entered were"
userhash.each_value {|value| puts value}
puts "the sum is #{userhash.inject(:+)}"
これは問題なく配列として実行して終了しました。これをハッシュとして実行することは非常に似ていると考えています。明らかにそれは意図したとおりに動作していません。ヘルプは高く評価されます。
Error: rb:15:in '<main>': undefined method 'each_value' for [{:num3=>"3"}]:Array (NoMethodError)
テストを求めるプロンプトが表示されたら、値1,2,3を入力しました。
UDPATE:オードの方法は、私は、これはあなたが繰り返しuserhash
に再割り当てすると(例えば[:num1=>gets.chomp]
)の配列を割り当てている
#!/user/bin/ruby
userhash=Hash.new()
puts "Enter first number"
userhash[:num1]=gets.chomp.to_f
puts "Enter 2nd number"
userhash[:num2]=gets.chomp.to_f
puts "Enter 3rd number"
userhash[:num3]=gets.chomp.to_f
puts "The number you entered were "
userhash.each_value {|value| puts value}
puts "The sum of those number is #{userhash.each_value.inject(:+)}"
どういうのですか? –
エラーメッセージが追加されました –