Ruby方法声明与定义

Ruby方法声明与定义教程

Ruby 中,使用方法前,必须先声明与定义方法。Ruby 的方法由方法返回值类型 、方法名、参数列表、方法体和返回语句组成。

Ruby方法定义

语法

def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end

所以,您可以定义一个简单的方法,如下所示:

def method_name expr.. end

您可以定义一个接受参数的方法,如下所示:

def method_name (var1, var2) expr.. end

参数

参数 描述
method_name 方法名。
arg 可选,方法参数列表。

说明

方法定义由一个 def 关键字开始。

Ruby方法调用

语法

[retvalue =] method_name( paramlist )

参数

参数 描述
method_name 方法名。
paramlist 可选,方法参数列表。
retvalue 可选,方法返回值。

说明

Ruby 方法如果没有返回值,可以省略 retvalue。

案例

Ruby方法定义

用方法,实现获取两个数中的最大值

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def maxInt(a, b) if a > b return a else return b end end maxValue = maxInt(10, 20) printf("maxValue = %d\n", maxValue)

程序运行后,控制台输出如下:

02_Ruby方法声明与定义.png

我们定义了一个方法 maxInt,传入两个的参数 a 和 b,方法返回一个 int 类型的参数。在方法里面,我们使用 if 语句 判断 a 和 b 的值,如果 a > b 成立,那么就返回 a 的值,如果不成立,则返回 b 的值,因此实现了寻找 a 和 b 中最大数的逻辑。

接着,我们调用了 maxInt 方法,并传入了两个参数 10 和 20,使用 maxValue 变量来接受 maxInt 方法返回的值,最后打印方法返回的结果。

计算和

实现计算两个数之间的所有数的和

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def mySum(a, b) res = 0 for i in a..b res += i end return res end sumResult = mySum(10, 20) printf("sumResult = %d\n", sumResult)

程序运行后,控制台输出如下:

03_Ruby方法声明与定义.png

我们定义了一个方法 mySum,传入两个参数 a 和 b,方法返回一个 int 类型的返回结果。在方法里面,我们使用 for 循环 遍历 a 和 b 之间的所有数,并将它们相加赋值给变量 res,最后返回 res 即实现了求 a 和 b 之间的和的逻辑。

当然,这题,我们没有考虑 a 小于 b 的情况,最好的方法,应该是找到 a 和 b 中的最大值和最小值,然后再使用 for 循环遍历相加。

Ruby方法声明与定义总结

在 Ruby 中,使用方法前,必须先声明与定义方法。Ruby 的方法由方法返回值类型 、方法名、参数列表、方法体和返回语句组成。