-1
require "test/unit/assertions"
include Test::Unit::Assertions
def key_for_min_value(hash)
arr = Array.new
arr = hash.min_by{ |key,value| value}
if arr[0]==nil
return nil
else return arr[0]
end
end
assert_equal key_for_min_value({"k" => 2, "h" => 3, "j" => 1}), "j"
assert_equal key_for_min_value({"o" => 0, "z" => -2, "j" => 1}), "z"
assert_equal key_for_min_value({}), nil
Этот код возвращает следующую ошибку.Неопределенная ошибка метода в Ruby 1.9.3
test1.rb: 7: в key_for_min_value': undefined method
[] 'для ноль: NilClass (NoMethodError) из test1.rb: 13: в `'
потому что вы пытаетесь вызвать '[]' на 'nil'. это потому, что вы дважды присваиваете 'arr', в последнем утверждении оно становится' nil'. – phoet
, пожалуйста, четко укажите, неспособный понять ваш комментарий – 0sfh