我在Project Euler上解决了一些问题,我提到我总是将短方法包装在 proc 函数中。我问自己“为什么? ”。答案是“我不知道。也许是因为它很短? ”。
那么proc函数对普通方法有什么好处,除了它们很短:)
# Proc
is_prime = proc{|number| !((number%2 == 0) || (3..Math.sqrt(number).to_i).step(2).any?{|n| (number%n).zero?})}
# Ordinary method
def is_prime(number)
!((number%2 == 0) || (3..Math.sqrt(number).to_i).step(2).any?{|n| (number%n).zero?})
end