下面是输出一个小于100的Fibnancci数列:
class test1
def Fib(max)
i1,i2 = 1,1
while i1 <= max
yield i1
i1,i2=i2,i1+i2
end
end
end
Fib(100){|f| print f," "}
由于有点看不懂,现在我改一下
class test2
def test2.Fib
i1,i2 = 1,1
i1,
i2=i2, #去掉就报错
i1+i2
end
end
我想问的是:
1.在test2里面Fib的返回值是怎么算的?是不是[i1,i1+i2]?为什么去掉i2=i2会就报错?
2.test1的while循环是怎么执行的?我的想法是
第一次循环,i1=1
yield 1
[1,2]
第二次循环,i1=1
yield 1
[1,3]
第三次循环,i1=1......不对劲了...
yield 1
[1,4]
..........
才学ruby,习惯了c#和java式的语法,觉得ruby语法真他娘的诡异。。。
i1,i2=i2,i1+i2
类似:i1=i2;
i2=i1+i2;
ruby的函数,如果没有明确返回值,就返回最后一个表达式的值,
test2里面Fib里是
i1,
i2=i2, #去掉就报错
i1+i2
我这边执行起来是12,即先打印i1,后打印i2
test1的while循环
第一次
yield 1
[1, 2]
第二次
yield 1
相关问答:
谁知道好用的Ruby IDE?
路过帮顶
帮顶
cheng_er你这个头像比我的还黄啊.
友情Up!~
纯顶
引用
cheng_er你这个头像比我的还黄啊.
这年头,奇怪的事情怎么这么多呢我就说
......
给Javascript和Ruby开个论坛专栏吧!
给Javascript和Ruby开个论坛专栏吧!
给Javascript和Ruby开个论坛专栏吧!
Javascript有专栏的:http://forum.csdn.net/SList/JavaScript
尊敬的用户deping_chen,您好: ......
数字从右边起每三位用一个逗号隔开
1232445 ⇒ 1,232,445
---- ChangeStr.rb内容 ------------------------------------------
def change_str(num)
str = num.to_s
nil while str. ......
我在ruby on rails上执行系统命令,但是该系统命令都在我默认的路径上执行的,即/var/www/my。现在我用ruby语言编程,可创建了一个新目录aaa(system "mkdir aaa"即可),但是我不能进入aaa目录下进行操作 ......
Python code:
puts true or false
puts false or true
为什么上面的输出true,下面的输出false?难道只认or前面的?
据说or后面是直接省略的,不知道是不是这样。
楼上的答案好像不是我想要的
ruby社区怎 ......