Ruby的简单实例

  • 格式:pdf
  • 大小:212.68 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ruby的简单实例

✓出处:站长百科

✓原文地址:/wiki/Ruby的简单实例

✓本电子书整理自站长百科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

✓出处:站长百科

print "hello world\n"

print "good-bye world\n"

^D

hello world

good-bye world

Ruby还包含了一个名为eval.rb的程序,它可以令到你在一个交互式的循环中输入Ruby代码并随之显示结果.在后面的教程里将广泛使用这个程序.

如果你有一个ANSI兼容(ANSI-compliant)的终端(如果你正运行着一个UNIX变种,一般都是的);在DOS下,你需要安装ANSI.SYS和;然后就可以使用这个支持可视化缩排,警告提示,彩色高亮度显示的增强eval.rb了.不行的话,试试Ruby发行版里sample目录下的那个非ANSI版本,它可以运行于所有的控制台.这是一个简短的eval.rb对话:

% ruby eval.rb

ruby> print "Hello, world.\n"

Hello, world.

✓出处:站长百科

相关主题