默认参数值
本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 53 课,共 88 课。
有时,你希望在未提供参数时,方法能使用合理的默认值。默认参数值可以让你定义调用方未指定参数时使用的值。
要设置默认值,请在参数名后使用 = 符号:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # 输出:Hello, Alice!
greet # 输出:Hello, friend!调用 greet 时如果不提供参数,Ruby 会使用 "friend" 作为默认值。提供参数时,它会覆盖默认值。
你可以混合使用普通参数和带默认值的参数。带默认值的参数通常放在没有默认值的参数后面,而且普通参数不能位于两个带默认值的参数之间:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # 输出:25(5 的平方)
puts power(2, 3) # 输出:8(2 的立方)这样可以让方法更灵活。调用者只需提供必要的信息,可选的详细信息则使用合理的默认值。
挑战
简单定义一个名为 multiply 的方法,它接受两个参数:a 和 b。参数 b 的默认值应为 1。该方法应返回 a 和 b 的乘积。
从输入中读取两个整数:
- 第一个数字(始终会提供)
- 第二个数字(可能会提供,也可能不会提供)
如果只提供一个输入,就只用这个参数调用方法(b 使用默认值)。如果提供了两个输入,就用两个参数调用方法。
打印方法调用的结果。
输入格式如下:
- 第一行:第一个数字
- 第二行:一个数字或单词
none
例如,输入为 7 和 3 时:
21输入为 5 和 none 时:
5输入为 12 和 4 时:
48亲手试试
# 读取输入
a = gets.chomp.to_i
b_input = gets.chomp
# TODO:定义 multiply 方法,将参数 b 的默认值设为 1
# TODO:根据 b_input 是 "none" 还是数字,调用相应的方法
# 如果 b_input 是 "none",调用 multiply 时只传入 a
# 如果 b_input 是数字,调用 multiply 时传入 a 和 b
# 打印结果
puts result这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器