块的长度有什么解释?

时间:2013-08-21 01:08:27

标签: ruby block

我想知道这一行:

 { |i| (num % i) == 0}.length == 0

有人可以解释在块上使用length会发生什么吗?我想回答关于素因子的问题:

divisors = Array.new
 for d in 2..(num)
  divisors << d if (num % d) == 0
end

primes = divisors.select do |num| 
 (2..(num-1)).select { |i| (num % i) == 0}.length == 0
end

1 个答案:

答案 0 :(得分:3)

它在length的结果上调用(2..(num-1)).select { |i| (num % i) == 0} - 这是一个数组 - 不在块上。