返回值
在许多编程语言中,一个差异是函数(function)或方法(method)是否会将值返回给调用代码。例如,在 Pascal 中,函数(function)会返回一个值,但例程(procedure)不会。在 Ruby 中没有这样的区别差异。所有方法总是返回一个值,当然,你不一定使用它。
return_vals.rb
如果未指定返回值,则 Ruby 方法返回最后一个计算表达式的结果。思考这个方法:
def method1
a = 1
b = 2
c = a + b # returns 3
end
计算的最后一个表达式是 a + b
,它恰好返回 3,因此这是该方法返回的值。有时候你可能不想要返回最后计算的表达式的结果。在这种情况下,你可以使用 return
关键字显式指定返回值:
def method2
a = 1
b = 2
c = a + b
return b # returns 2
end
方法不一定要进行任何赋值操作以提供返回值。一些简单的数据(即,对其自身求值),如果这恰好是方法中计算的最后一个操作,这将作为返回值。如果没有计算任何东西,则返回 nil
:
def method3
"hello" # returns "hello"
end
def method4
a = 1 + 2
"goodbye" # returns "goodbye"
end
def method5
end # returns nil
我自己的编程习惯是编写尽可能清晰明确的代码。出于这个原因,每当我打算使用方法的返回值时,我更喜欢使用 return
关键字显式指定它;只有当我不打算使用返回值时,我才会省略它。但是,这不是强制性的 - Ruby 给了你选择的权利。