Ruby语言入门

一、方法

Ruby 的方法定义允许为参数设置默认值,不过在带有默认值的参数后面不能出现不带有默认值的参数(允许 * 和 &),也就是说下面的方法定义是不被允许的,解释时会出现 parse error。 还有一点与 C# 不同的是,方法定义不能出现在方法调用的后面。

# parse error
def Display(args1="proshea", args2)
end
# 允许
def Display(args1="proshea", *args2)
end
# 允许
def Display(args1="proshea", &args)
end
Show()
# 出现在 Show 调用之后是错误的
def Show
end

Ruby 也支持 C# params 这样的参数功能, 只是 Ruby 用 * 标识罢了。

def Display(*args)
print %Q~#{args.join("-")}~
end
# proshea-32-WinForm
Display("proshea", 32, "WinForm")

同样的, Ruby 也有类似于 C# delegate 的应用,只是更简单,直接用 & 来表示,并且 Ruby 用一个称为 yield 的关键字来知会解释器执行传入的代码块或者说 Proc object(过程对象?)。

1def Display(&block)
2 if block_given?
3 yield(block)
4 else
5 print %Q~没有传入过程对象~
6 end
7end
8
9def Show()
10 print %Q~Show 方法调用~
11end
12
13# 没有传入过程对象
14Display()
15# 在 Display 内部调用 Show 方法
16# 注意起始大括号仍然只能和方法名在同一行
17Display(){
18 Show()
19}

时间: 2025-01-26 23:02:20

Ruby语言入门的相关文章

C语言入门的一些基本资源推荐和程序语法概览_C 语言

为什么要学习C语言? 为什么要学习.使用C语言?为什么要学习一个可能比自己都岁数大的编程语言? 选择一门编程语言,"为什么而学"这个目的是最重要的,目的不明确就没法学好.这也是为什么很多学生朋友在大学里必修C语言却觉得没学明白的原因.因为学习的目的不明确,学习当然也没有动力.还有一个原因是C语言是工程实践性很强的语言,它不是来自某个研究所某个大学学院,而是实实在在从项目需要中产生,伴随着Unix的兴起而流行,语义简明清晰,功能强大而不臃肿,简洁而又不过分简单,实在是居家旅行工作学习必备

ruby-求大神支招:如何学好Ruby语言

问题描述 求大神支招:如何学好Ruby语言 求大神支招:如何学好Ruby语言,还有Ruby什么版本用的人比较多,看什么书? 解决方案 请看这个:http://blog.csdn.net/liuk10/article/details/50976160

Ruby语言FAQ

1.Ruby是什么东东? Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大.她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的.Ruby从Perl语言那里借鉴了许多东西(有人形象地 说Ruby是Perl的漂亮的妹妹:),和Perl相似,Ruby也擅长于文本处理.系统管理等任务.和Smalltalk 一样,Ruby是一种纯粹的面向对象语言,任何东西都是对象.下面是Ruby语言的一些特性: ◆语法简单.优雅 ◆ 解释型执行.方便快捷 ◆完

探讨Java与Ruby语言迁移时的安全性

在这篇文章中,我们将要探讨Java与Ruby语言迁移时风险预测方面的问题. 通常来说,"使用Ruby具有风险"是一种普遍的看法,这存在一定的原因.因为使用新的语言天生是有风险的.随着Ruby on Rails逐步进入到主流的开发领域中,这样的风险将会随时间逐渐降低,因为有逐步增长的开发者群.组件(或称作gems和plug-ins)相关的书籍.以及业务合作伙伴与你沟通交流.但同时你也可以听到主流的观点指出"使用Java是安全的".对于这种的观点,我持有强烈的反对意见.

《面向对象设计实践指南:Ruby语言描述》目录—导读

内容提要 面向对象设计实践指南:Ruby语言描述 本书是对"如何编写更易维护.更易管理.更讨人喜爱且功能更为强大的Ruby应用程序"的全面指导.为帮助读者解决Ruby代码难以更改和不易扩展的问题,作者在书中运用了多种功能强大和实用的面向对象设计技术,并借助大量简单实用的Ruby示例对这些技术进行全面解释. 全书共9章,主要包含的内容有:如何使用面向对象编程技术编写更易于维护和扩展的Ruby代码,单个Ruby类所应包含的内容,避免将应该保持独立的对象交织在一起,在多个对象之间定义灵活的接

Java、PHP、C、Ruby 语言相互吐槽的搞笑图片

谁能看明白这幅Java.PHP.C.Ruby语言相互吐槽的搞笑图片都说的是什么? 看到这篇有趣的图片研究了很久也没完全理解各个图片的意思.今天把它贴出来,希望大家能帮我理解一下,各抒己见.下面这个图表中是我个人的一些理解,没看明 白的我都打了问号.本身这就是个搞笑图片,所以我贴出来也是希望大家娱乐一下,每个人都可以有自己搞笑的观点,没有正确的标准.   Java粉丝认为Java语言: 稳定 功能齐全 负载强 Java粉丝认为C语言: 过时 老古董 Java粉丝认为PHP: 小儿科 功能弱 Jav

c语言-C语言入门问题求大神指点

问题描述 C语言入门问题求大神指点 #include #define TABINC 8 //tab increment size //replace strings of blanks with tabs and blanksint main(void){ int c nb nt pos; nb = 0; //number of blanksnt = 0; //number of tabsfor (pos = 1; (c = getchar()) != EOF; pos++){ if (c ==

用ruby语言编写的web项目在什么服务器下发布运行?[

问题描述 我不知道我这样说的对不对,今天收到公司老总发来的一个项目,要我们搭配环境运行测试,在这个项目下全是rb后缀的文件,我想应该是用ruby语言写的吧,但是我不知道该怎么发布,本人对ruby一点了解都没有,望有人能指点指点,项目文件在附件中,我还不知道那是否是一个项目? 问题补充:飞雪无情 写道 解决方案 可以参考http://blog.csdn.net/helen_shw/archive/2010/04/02/5444357.aspx和http://my.oschina.net/RFDev

Ruby语言十大令人喜爱的特点

1. 动态类型 静态类型语言也有很不错的功能,比如编译时验证和 IDE 支持.不过根据我的经验,动态类型对于项目启动真的有很大帮助,并且便于进行更改,尤其是在项目的早期到中期这些阶段. 为了能够让我能够轻松地继续对象交换,我不需要为新对象创建正式的接口,这点让人很开心. 2. Duck Typing(鸭子类型) 这只是动态类型的一个有效的扩展.在 Ruby 中,预期能够对字符串对象进行操作的方法并不会检查 is_a?(String).它们检查对象是否 respond_to?(:to_str),如