Ruby的简单实例
✓出处:站长百科
✓原文地址:baike/wiki/Ruby的简单实例wordpress主题开发手册
✓本电子书整理自站长百科Ruby简单实例词条,查看内容请访问网站。
让我们写一个计算阶乘的函数.对于阶乘的数学定义如下:
n! = 1 (当 n==0 时)
= n * (n-1)! (其它情况)
在Ruby里,可以这样来写:
def fact(n)
if n == 0
1
else
n * fact(n-1)
end
end
✓出处:站长百科
你可能会发现 end 的反复出现,正因为如此,Ruby被叫做"类Algol"语言.(实际上,Ruby的语法更像Eiffel).同时,你也可能会发现这段函数缺少 return语句.在这里是可以用return的,但却不是必须的,因为一个Ruby的函数会自动返回它所最后赋值的元素.
让我们来试试我们的阶乘函数.加入一行代码会使它成为一个可工作的程序:
# Program to find the factorial of a number
# Save this as fact.rb
def fact(n)
if n == 0
1
else
n * fact(n-1)
end
end
print fact(ARGV[0].to_i), "\n"
✓出处:站长百科
这里,ARGV是一个包含命令行参数的数组,to_i将字符串转化为整数.
% ruby fact.rb 1
1
% ruby fact.rb 5
120
当参数为40时它可以工作吗?它将使你的计算器产生溢出(overflow)...
% ruby fact.rb 40
815915283247897734345611269596115894272000000000
它确实算出来了.实际上,Ruby能处理任何你机器的内存所允许的整数.实际上400!也可以:
% ruby fact.rb 400
6403452284662389526234797031950300585070258302600295945 8684
4459428023971691868314362784786474632646762943505750358✓出处:站长百科
5681
0848298162883517435228961988646802997937341654150838162 4264
6194235230704624432501511444867089066277391491811733195 5996
4407095496713452904770203224349112107975932807951015453 7266
7251627877890009349763765710326350331533965349868386831 3393
5202437378815778679150631185870261827016981974006298302 5308
5912983461622723045583395207596115053022360868104332972 5519
4852674432232438669948422404232599805551610635942376961 3992
3191713406385899653797014782720660632021737947201032135 6624
✓出处:站长百科
6138090779423045973606995675958360961587151299138222865 7857
9549361617654480453222007825818400848436415591229454275 3848
0355837451802267590006139956014559520612721119291810503 2491
0080000000000000000000000000000000000000000000000000000 0000
0000000000000000000000000000000000000000000
我们不能一眼看出是否算对了,但我想应该是对的吧. :-)
输入/求值循环
当你不带参数启动Ruby的时候,Ruby会从标准输入读入命令并在输入结束后再执行:
% ruby
✓出处:站长百科
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论