[新手请教] {|num|$arr <<num if is_prime?num }是什么意思?
麻烦帮我解释一下 下面的 程序的意思(入门新手)吧:
def add_prime(n)
3.step(n,2){|num|$arr <<num if is_prime?num }
end
[解决办法]
大括号是个block,前面的方法传参数进去,也就是从3到n步长为2.
传入的参数在block内名为num(即|num|部分),$arr是个全局变量,<<操作符把一个元素添加到前面的变量$arr里面,$arr<<num就是把每一次传入的num添加进入数组$arr,但这个添加有一个条件,就是if后面的语句。is_prime?是一个方法名,传入参数为num。is_prime?应该是一个判断质数的方法,若num是prime则返回ture,否则返回false。
也就是说这整个函数的意思是,判断从3到n的所有奇数(步长为2),若它是prime,则将其添加到全局变量数组$arr中。