Ruby方法默认值

Ruby方法默认值教程

Ruby 可以为方法参数指定默认参数值,使用了默认参数,你在调用方法的过程中可以不需要传递参数,这时方法就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。

Ruby方法默认值详解

语法

def method_name (var1=value1, var2=value2) expr.. end

参数

参数 描述
method_name 方法名。
var1 方法参数
value1 参数 var1 的默认值
var2 方法参数
value2 参数 var2 的默认值

说明

我们定义了一个方法 method_name,其参数 var1 的默认值为 value1,参数 var2 的默认值为 value2。

案例

方法默认值

定义支持默认值的方法

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def sum(num1, num2 = 100) ret = 0 for i in num1..num2 ret = ret + i end return ret end num1 = 1 num2 = 1024 ret1 = sum(num1, num2) ret2 = sum(num1) printf("ret1 = %d, ret2 = %d\n", ret1, ret2)

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

07_Ruby方法默认值.png

我们定义了一个方法 sum,该方法接受两个参数,一个 int 类型的 num1,和一个 int 类型的 num2,同时,num2 参数还有一个默认值 100,该方法实现的功能是计算从 num1 到 num2 的和。

最后,我们两次调用了方法 sum,第一次调用时,我们传入了两个参数,此时计算的就是我们传入的两个参数之间所有数的和,第二次,调用时,我们只传递了第一个参数,此时第二个参数就是使用默认值 100。

方法多个默认参数

Ruby 中方法多个默认参数的使用

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def sum(num1 = 1, num2 = 100) ret = 0 for i in num1..num2 ret = ret + i end return ret end num1 = 1 num2 = 1024 ret1 = sum(num1, num2) ret2 = sum(num1) ret3 = sum() printf("ret1 = %d, ret2 = %d, ret3 = %d\n", ret1, ret2, ret3)

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

08_Ruby方法默认值.png

这次,我们定义的方法 sum,两个参数都有默认参数,因此,我们可以不传递任何参数调用该方法。

Ruby方法默认值总结

Ruby 可以为方法参数指定默认参数值,使用了默认参数,你在调用方法的过程中可以不需要传递参数,这时方法就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。