现在我有 def min(array,starting,ending) minimum = starting for i in starting+1 ..ending if array[i]array[minimum] minimum = i end endreturn minimumend Ruby中有更好的“实现”吗?这个仍然看起来像c-ish. 谢谢. 如果要查
def min(array,starting,ending)
minimum = starting
for i in starting+1 ..ending
if array[i]<array[minimum]
minimum = i
end
end
return minimum
end
Ruby中有更好的“实现”吗?这个仍然看起来像c-ish.
谢谢.
得到一个项目索引对的数组,并找到具有Enumerable #min的最小值(这也是原始数组的最小值).
% irb
irb> require 'enumerator'
#=> true
irb> array = %w{ the quick brown fox jumped over the lazy dog }
#=> ["the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
irb> array.enum_for(:each_with_index).min
#=> ["brown", 2]
如果要将其绑定到特定的数组索引:
irb> start = 3 #=> 3 irb> stop = 7 #=> 7 irb> array[start..stop].enum_for(:each_with_index).min #=> ["fox", 0] irb> array[start..stop].enum_for(:each_with_index).min.last + start #=> 3
