-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