【方法小结】
关于方法的那些细节
1. 定义
ruby方法的定义格式是通过关键字def end的来定义的 具体格式如下
ded 方法名[参数1,参数2,。。。]
表达式
[return 表达式]
end
2. 方法命名
提到方法肯定少不了方法命名,ruby方法的命名规则同变量命名一样采用默认机制的规则命名 具体规则如下
2.1 方法名必须以一个小写字母开头(如果以大写字母开头, 当ruby在调用这个方法的时候,它首先会以为这是一个常量,而不是当一个方法使用。),后跟数字/字母/下划线等
2.2 表示查询的方法通常以?结尾 如 instance_of
2.3 危险的或者会修改接收者对象的方法,通常用!结尾。 例如 String 提供的chop和chop! 第一个方法返回修改后的字符串,第二个则就地修改对象。
2.4 可以被赋值的方法以一个=结尾。
2.5 只有以上3个特殊字符可以作为方法的后缀。
3. 方法参数
3.1 ruby方法有一个特点(之前只用的语言中没有可以这样使用的)就是在声明方法时可以指定方法参数的默认值 例如:
def name(name=“seek”)
”#{name}“
end
name --> seek
name("love") --> love
3.2 Ruby方法参数两边的括号可有可无,当有参数是使用括号,没有参数时可以不加括号。 例如:
def hello(name)
name
end
def hello
”hello“
end
3.3 可变长度的参数列表,如果希望传入可变个数的参数,或者想用一个形参接受多个参数,只需在普通的参数名前放一个"*"号即可,这些多个参数会被装入一个数组中。
例如:
def hello(name,*hobby)
"#{name} like #{hobby.join(',')}"
end
hello("seek") --> seek like
hello("seek","ruby") --> seek like ruby
hello("seek","java","ruby") --> seek like java,ruby
3.4 如果方法的最后一个参数前有个&做前缀,Ruby将认为他是一个Proc对象(),它将会被从其参数列表中删除,并将Proc对象转换成一个block,然后关联到该方法。
4. 返回值
每个被调用的方法都有一个返回值,ruby方法的返回值是执行的最后一个表达式的值,或者使用return表达式显示返回的值。如果给return多个参数,方法会将它们以数组的形式返回。
分享到:
相关推荐
这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...
1. Ruby解释器:这是执行Ruby代码的核心组件,允许开发者运行编写好的Ruby程序。 2. 标准库:Ruby的内置模块和类,涵盖了从文件操作到网络通信的各种功能。 3. 开发工具:如编译器、调试器和其他辅助开发工具,帮助...
文件名"ruby186-26 (1).exe"表明这是一个针对Ruby 1.8.6的Windows安装程序,版本号为26。安装过程通常包括以下步骤: 1. 下载:访问官方网站或第三方资源下载Ruby 1.8.6的Windows安装包。 2. 运行:双击.exe文件...
Ruby-Http2是HTTP/2协议的一个纯Ruby实现,它为Ruby开发者提供了一种高效、安全的方式...通过深入学习和使用Ruby-Http2库,开发者可以更好地理解和利用HTTP/2协议,从而在Ruby应用程序中实现更高效、更流畅的网络通信。
《RUBY QUIZ - The Solitaire Cipher》是一个关于Ruby编程语言和密码学的挑战,源自一个流行的在线编程练习平台。这个挑战旨在通过解决一个具体的密码编码问题,来提高Ruby编程技巧和理解加密算法的能力。 首先,让...
标题 "Ruby-dryrun直接从命令行中尝试任何Android库在你的手机上" 提供了关于一个名为 `dryrun` 的工具的信息,该工具允许开发者在Android设备上快速测试库的功能,无需完整的集成过程。这个工具是用Ruby语言编写的...
1. **Ruby Map**: Map函数允许我们将一个操作应用到数组或集合中的每一个元素上,然后返回一个新的数组,包含应用操作后的结果。例如,如果你有一个数组包含数字,你可以用map来将每个元素平方: ```ruby numbers...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在这个"Ruby-一个Ruby的例子...通过深入学习和实践这个Ruby例子,你将更好地理解它的语法、面向对象特性和丰富的库支持。
- **元编程**:Ruby提供了`eval`、`define_method`等方法,允许在运行时修改或创建类和方法,增强了灵活性。 - **异常处理**:通过`begin..rescue..end`结构处理程序中的异常情况。 3. **Ruby-2.5系列的特性**:...
1. "学ruby的感受.txt":这可能是一个文档,记录了作者在学习Ruby过程中的个人感受、体会,可能包括学习方法、遇到的挑战、解决办法等。从中我们可以了解到Ruby语言的特点,以及初学者在学习过程中可能遇到的问题和...
通过阅读源代码,你可以学习如何解析Ruby的注释,如何构建文档结构,以及如何生成最终的HTML或命令行输出。 总的来说,Ruby-RDoc是Ruby开发中不可或缺的一部分,它提高了代码的可读性和可维护性,同时也是开源文化...
标签“Ruby开发-机器学习”进一步确认了我们正在讨论的是使用Ruby进行机器学习,特别是线性回归这一监督学习算法的应用。Ruby虽然不像Python那样在数据科学领域广泛使用,但仍有其独特的社区和工具,如Numo::NArray...
标题提到的“Ruby-Functo”就是Ruby中实现可组合方法对象的一个库,它为开发者提供了更灵活和模块化的代码组织方式。 Functo库的设计理念是让函数或方法像对象一样可以被操作、组合和复用。在传统的面向对象编程中...
压缩包子文件的文件名称列表提供了关于这个Ruby分发包的组成部分: 1. **README.1st**:这是一个标准的文本文件,通常包含有关软件的基本信息,包括安装指南、许可证条款、版本信息和已知问题等。 2. **MANIFEST**...
同时,通过阅读源码,开发者可以深入理解Ruby的内部机制,学习如何实现一个动态语言的编译器和运行时系统。这对于想要参与Ruby核心开发或者希望提升编程技能的人来说,是一份宝贵的资源。 为了编译和运行Ruby源码,...
1. **Ruby的介绍**: - Ruby的设计理念强调代码的可读性和简洁性,其语法流畅,易于理解。 - Rails(Ruby on Rails)是Ruby的一个流行Web开发框架,它采用MVC(模型-视图-控制器)架构模式,简化了Web应用的开发...
Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro ...对于想要深入学习Ruby的开发者来说,这个版本的文档是非常宝贵的资源,可以帮助他们理解语言的核心概念,掌握最新的特性,从而提升开发技能。
在本文中,我们将深入探讨`mongo-ruby-driver`的关键特性和使用方法,以及如何通过源代码来理解和定制它。 首先,`mongo-ruby-driver`提供了丰富的API,使得Ruby程序员可以方便地执行常见的数据库操作,如插入、...
1. **块参数解构**:Ruby 3.1引入了一种新的语法,允许在块参数中使用解构赋值,使得处理数组或哈希更加方便。例如,`yield [a, b], {c: d}`可以直接将数组和哈希解构为单独的变量。 2. **Symbol to_proc的优化**:...