如何编写我自己的最大功能
我知道在Ruby中有一个来自Enumerable库的最大函数。如何编写我自己的最大功能
但是,我试图弄清楚如何编写我自己的最大的方法,其中数组中的最大数字被找出。
我该怎么做?我真的很失落,因为当我Google时,我所得到的只是最大功能本身。
任何帮助/建议将有所帮助!
另一种幼稚的做法是 -
list = [3,4,2,5,6,7,8,2,5,1,4,4,6]
def maximum(list)
len = list.size - 1
maximum = list[0]
for i in 1..len
if maximum < list[i]
maximum = list[i]
end
end
maximum
end
puts maximum(list)
# >> 8
下面是图形化的解释(从这个link拍摄) -
谢谢!这确实有帮助,因为它不依赖于其他功能,并且我可以进一步分解它以尝试更多地理解它。 – user273072545345 2014-10-03 20:45:37
您有两种方法:Enumerable#each
(必要)或Enumerable#reduce
(通常功能,取决于您如何使用它)。我更喜欢功能性的解决方案,所以我会写:
module Enumerable
def my_max
reduce { |current_max, x| x > current_max ? x : current_max }
end
end
谢谢!我很欣赏这是看待这种方法的另一种方式。而且还提出了强制性和功能性的做事方式的问题,因为我甚至没有这样做。 – user273072545345 2014-10-03 20:47:44
你想要'array.sort.last'吗? – 2014-10-03 18:20:05