有沒有一種方法可以使用map來重構此方法? (此意圖這種方法的是返回1和最大參數之間的素數的陣列)如果代碼塊的計算結果爲false,則跳過可枚舉#map上的值
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
返回的數組具有零值時,碼塊失敗。
p primes(5)
#=> [1, 2, 3, nil, 5]
我知道我必須工作,但我寧願不聲明數組,具體返回數組,如果有更好的方法來做到這一點
是啊,我意識到,張貼:)拒絕和選擇的問題秒後就是我一直在尋找。 – Brent
這是一個關於如何避免地圖上的nils,注入等的問題(我是ruby的新手),我想最正確的方法是在最大值中包含Primes和Primes.each。 – Brent