有没有办法使用地图重构这种方法?(此方法的目的是返回一个介于 1 和 max 参数之间的素数数组)
def primes(max)
prime_arr = []
(1..max).each {|i| prime_arr << i if is_prime?(i)}
prime_arr
end
is_prime?(val) 返回真或假。
如果我将方法更改为:
def primes(max)
(1..max).map {|i| i if is_prime?(i)}
end
当代码块失败时,返回的数组有一个 nil 值。
p primes(5)
#=> [1, 2, 3, nil, 5]
我知道我有什么工作,但如果有更好的方法,我宁愿不声明数组并专门返回数组