-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