`
seektolive
  • 浏览: 11249 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby学习--关于方法(1)

    博客分类:
  • ruby
阅读更多

【方法小结】

关于方法的那些细节

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多个参数,方法会将它们以数组的形式返回。

 

 

 

 

1
1
分享到:
评论

相关推荐

    Ruby学习资料(含参考手册和Programming Ruby)-中文.rar

    这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...

    ruby-1.9.1-p0-i386-mswin32.rar

    1. Ruby解释器:这是执行Ruby代码的核心组件,允许开发者运行编写好的Ruby程序。 2. 标准库:Ruby的内置模块和类,涵盖了从文件操作到网络通信的各种功能。 3. 开发工具:如编译器、调试器和其他辅助开发工具,帮助...

    ruby1.8.6-26

    文件名"ruby186-26 (1).exe"表明这是一个针对Ruby 1.8.6的Windows安装程序,版本号为26。安装过程通常包括以下步骤: 1. 下载:访问官方网站或第三方资源下载Ruby 1.8.6的Windows安装包。 2. 运行:双击.exe文件...

    Ruby-Http2HTTP2协议的纯Ruby实现

    Ruby-Http2是HTTP/2协议的一个纯Ruby实现,它为Ruby开发者提供了一种高效、安全的方式...通过深入学习和使用Ruby-Http2库,开发者可以更好地理解和利用HTTP/2协议,从而在Ruby应用程序中实现更高效、更流畅的网络通信。

    《RUBY QUIZ - The Solitaire Cipher 》

    《RUBY QUIZ - The Solitaire Cipher》是一个关于Ruby编程语言和密码学的挑战,源自一个流行的在线编程练习平台。这个挑战旨在通过解决一个具体的密码编码问题,来提高Ruby编程技巧和理解加密算法的能力。 首先,让...

    Ruby-dryrun直接从命令行中尝试任何Android库在你的手机上

    标题 "Ruby-dryrun直接从命令行中尝试任何Android库在你的手机上" 提供了关于一个名为 `dryrun` 的工具的信息,该工具允许开发者在Android设备上快速测试库的功能,无需完整的集成过程。这个工具是用Ruby语言编写的...

    Ruby Data-Processing ruby数据处理

    1. **Ruby Map**: Map函数允许我们将一个操作应用到数组或集合中的每一个元素上,然后返回一个新的数组,包含应用操作后的结果。例如,如果你有一个数组包含数字,你可以用map来将每个元素平方: ```ruby numbers...

    Ruby-一个Ruby的例子

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。在这个"Ruby-一个Ruby的例子...通过深入学习和实践这个Ruby例子,你将更好地理解它的语法、面向对象特性和丰富的库支持。

    ruby-2.5.8.tar.gz

    - **元编程**:Ruby提供了`eval`、`define_method`等方法,允许在运行时修改或创建类和方法,增强了灵活性。 - **异常处理**:通过`begin..rescue..end`结构处理程序中的异常情况。 3. **Ruby-2.5系列的特性**:...

    ruby笔记1ruby笔记1ruby笔记1

    1. "学ruby的感受.txt":这可能是一个文档,记录了作者在学习Ruby过程中的个人感受、体会,可能包括学习方法、遇到的挑战、解决办法等。从中我们可以了解到Ruby语言的特点,以及初学者在学习过程中可能遇到的问题和...

    Ruby-RDoc用于为Ruby项目生成HTML和命令行文档

    通过阅读源代码,你可以学习如何解析Ruby的注释,如何构建文档结构,以及如何生成最终的HTML或命令行输出。 总的来说,Ruby-RDoc是Ruby开发中不可或缺的一部分,它提高了代码的可读性和可维护性,同时也是开源文化...

    Ruby-Ruby的线性回归

    标签“Ruby开发-机器学习”进一步确认了我们正在讨论的是使用Ruby进行机器学习,特别是线性回归这一监督学习算法的应用。Ruby虽然不像Python那样在数据科学领域广泛使用,但仍有其独特的社区和工具,如Numo::NArray...

    Ruby-Functo是ruby中的可组合方法对象

    标题提到的“Ruby-Functo”就是Ruby中实现可组合方法对象的一个库,它为开发者提供了更灵活和模块化的代码组织方式。 Functo库的设计理念是让函数或方法像对象一样可以被操作、组合和复用。在传统的面向对象编程中...

    ruby-1.8.7-p174-i386-mswin32

    压缩包子文件的文件名称列表提供了关于这个Ruby分发包的组成部分: 1. **README.1st**:这是一个标准的文本文件,通常包含有关软件的基本信息,包括安装指南、许可证条款、版本信息和已知问题等。 2. **MANIFEST**...

    ruby-2.6.3源码压缩包

    同时,通过阅读源码,开发者可以深入理解Ruby的内部机制,学习如何实现一个动态语言的编译器和运行时系统。这对于想要参与Ruby核心开发或者希望提升编程技能的人来说,是一份宝贵的资源。 为了编译和运行Ruby源码,...

    ruby-plsql-master

    1. **Ruby的介绍**: - Ruby的设计理念强调代码的可读性和简洁性,其语法流畅,易于理解。 - Rails(Ruby on Rails)是Ruby的一个流行Web开发框架,它采用MVC(模型-视图-控制器)架构模式,简化了Web应用的开发...

    ruby-2.2.1

    Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro ...对于想要深入学习Ruby的开发者来说,这个版本的文档是非常宝贵的资源,可以帮助他们理解语言的核心概念,掌握最新的特性,从而提升开发技能。

    mongo-ruby-driverMongoDB的Ruby驱动程序-源代码

    在本文中,我们将深入探讨`mongo-ruby-driver`的关键特性和使用方法,以及如何通过源代码来理解和定制它。 首先,`mongo-ruby-driver`提供了丰富的API,使得Ruby程序员可以方便地执行常见的数据库操作,如插入、...

    Ruby资源ruby-v3.1.1.zip

    1. **块参数解构**:Ruby 3.1引入了一种新的语法,允许在块参数中使用解构赋值,使得处理数组或哈希更加方便。例如,`yield [a, b], {c: d}`可以直接将数组和哈希解构为单独的变量。 2. **Symbol to_proc的优化**:...

Global site tag (gtag.js) - Google Analytics