Цель состоит в том, чтобы заставить пользователя вводить 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: метод Орд получил помог мне получить эту работу
#!/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(:+)}"
какая ошибка? –
Добавлено сообщение об ошибке –