首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

[新手请问] {|num|$arr <<num if is_prime?num }是什么意思

2012-02-25 
[新手请教] {|num|$arr num if is_prime?num }是什么意思?麻烦帮我解释一下 下面的 程序的意思(入门新手

[新手请教] {|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中。

热点排行