Ruby 中的方法
方法用于避免在整个程序中重复相同的事情。
创建方法
要创建方法,请使用以下语法:
def my_first_method
"Hello"
end
puts my_first_method #=> "Hello"
参数和实参
参数 是方法模板中的占位符变量,而 参数 是调用方法时传递给方法的实际变量。
def add_ten(number)
number + 10
end
puts add_ten(20) #=> "30"
在这个例子中,number
是一个参数,20
是一个自变量。
默认参数
如果不想在调用方法时总是给出参数,请使用默认参数:
def add_ten(number = 1)
number + 10
end
puts add_ten(20) #=> "30"
puts add_ten #=> "11"
方法返回什么
Ruby 为方法提供了隐式返回,它总是返回最后评估的表达式。
Ruby 也提供明确的返回,编写在继续之前检查输入错误的方法很有用。
def even_odd(number)
unless number.is_a? Numeric
return "A number was not entered."
end
if number % 2 == 0
"That is an even number."
else
"That is an odd number."
end
end
puts even_odd(30) #=> That is an even number.
puts even_odd("Egg") #=> A number was not entered.
谓词方法
?
名称末尾 带有问号 ( ) 的方法(例如even?
、 odd?
或 ) between?
是 谓词 方法,这是 Ruby 对返回布尔值的方法使用的命名约定。
puts 3.even? #=> false
puts 10.even? #=> true
puts 171.odd? #=> true
puts 13.between?(10, 15) #=> true
Bang 方法
!
方法名称末尾带有感叹号 ( ) 的方法。
!
通过在方法末尾添加 ,您可以表明此方法执行其操作并同时用结果覆盖原始对象的值。
whisper = "HEY"
puts whisper.downcase! #=> "hey"
puts whisper #=> "hey"