免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2675 | 回复: 5
打印 上一主题 下一主题

Ruby的基础 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-13 11:52 |只看该作者 |倒序浏览
本帖最后由 中关村村草 于 2010-12-13 11:54 编辑

一、Ruby的“单行程序”

为了使您适应脚本语言,首先介绍几个Ruby的单行程序。

# 经典的 Hello world

  1. print "Hello world\n"
复制代码

# 列出输入文件中包含”From”的行

  1. while gets(); print if /From / end
复制代码

# 向文件中添加行号

  1. while gets(); print $., ":", $_ end
复制代码

# π的计算

  1. print 4*Math.atan2(1,1), "\n"
复制代码

二、Ruby的注释

Ruby的注释是指从#开始到该行结束。

三、Ruby的表达式

Ruby的表达式包括下列内容(主要的)。

◆字符串

字符串是指被单引号(')或双引号(")括起来的部分。在用双引号括起来的字符串中,可以使用反斜杠(\)来指定转义字符,这同C语言是一样的。同时,以#{}括起来的表达式的结果也被置入其中。

◆数值

整数,浮点数。

◆数组/散列表

用[]括起来的一串表达式是数组,而以{}括起来的一串表达式是散列表。

散列表是一种可以把任意类型的对象都当成索引的数组。散列表有时也叫做哈希表或辞典。

◆变量/常数

Ruby中有常数和3种变量。变量和常数的区别在于第一个字符有所不同。

◆局部变量

变量名以小写英文字母开始。使用时,需要以赋值的方式进行初始化。

◆全局变量

以$开始。未初始化的值为nil。

◆实例变量

以@开始。未初始化的值为nil。

◆类变量

以@@开始。未初始化的值为nil。

◆类常数

以大写英文字母开始。未初始化的值为nil。

◆赋值

变量赋值方法如下。

变量=表达式

◆调用方法(函数)

执行对象固有操作(方法)的方法如下:

表达式.方法名

表达式.方法名(表达式..)

在不引起混淆的情况下,可以省略参数的括号。

调用某方法执行主体self的方法时,可以省略最开始的表达式。

方法名

方法名(表达式..)

区分无参数的方法调用和局部变量的方法是看看有没有赋值过程。

◆操作符表达式

普通的算式可以用(基本上与C语言一样的)操作符来表示。但内部是把操作符当作方法调用(以操作符作为方法名)来处理的。

四、Ruby的语句

Ruby使用分号( ; )或换行来分隔表达式,表达式串起来构成语句。语句的值取决于最后执行的表达式的值。

1、Ruby的流程控制结构

Ruby中可以使用下列流程控制结构。

◆if表达式 then代码块 [elsif表达式 then代码块]..[else代码块]end

◆case表达式when表达式..;代码块...[else代码块]end

◆while表达式;代码块end

◆for变量..in表达式;代码块end

if和while的意思与通常的语言基本相同。可以使用分号或换行来代替if代码块中的then。请注意Ruby使用elsif代替C语言中的else if。

case是把若干个比较归为一体的控制结构。

for可以使用循环把数组等的元素分别赋值给变量。

循环内可以使用下列语句:

◆break

中断循环(相当于C语言的break)。

◆next

开始下一次循环(相当于C语言的continue)。

◆redo

重新执行块的第一行。

2、常用的语句

介绍几个Ruby程序中常用的语句。这些语句是对象类的方法,可以在任何类中使用,就如同使用函数一样。

◆exit([status])

结束程序的运行。若为status指定了一个整数的话,该整数就成为结束status。默认的status值为0。

◆gets

从命令行参数指定的文件(群)中读取一行,然后把该行的内容作为字符串返回。若没有制定命令行参数的话,则从标准输入中读取。读取的字符串可以被赋值给变量$_。遇到文件结束返回nil(伪)。

while gets

...

end

上面就是典型的用法。

◆open(文件名[,mode])

打开文件。mode是字符串,就和C的fopen一样。省略时以读取模式打开。

◆print

输出函数。按顺序将参数输出到标准输出上。省略参数时则输出变量$_的值。

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
2 [报告]
发表于 2010-12-13 15:09 |只看该作者
{:3_190:} 原创?

论坛徽章:
0
3 [报告]
发表于 2010-12-14 16:50 |只看该作者
回复 2# zhlong8


    跟你没法比!

论坛徽章:
0
4 [报告]
发表于 2010-12-15 06:44 |只看该作者
村艹辛苦了。

论坛徽章:
0
5 [报告]
发表于 2010-12-15 13:51 |只看该作者
回复 4# 2gua


    无奈!还是学文深点好!

论坛徽章:
0
6 [报告]
发表于 2010-12-16 02:04 |只看该作者
经典经典
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP