Ruby 编程/编写方法
外观
< Ruby 编程
方法定义以 def
关键字开始,以 end
关键字结束。一些程序员发现 Ruby 中的方法定义符号非常类似于 Python 的符号。
def myMethod
end
要定义一个带参数的方法,可以在方法名后面的小括号中放入变量名。当方法被调用时,方法中的代码将在一个名为指定参数的局部变量中运行。
def myMethod(msg)
puts msg
end
如果需要多个参数,可以使用逗号分隔。
def myMethod(msg, person)
puts "Hi, my name is " + person + ". Some information about myself: " + msg
end
您可以使用或不使用括号调用方法,尽管省略括号可能被认为是不好的风格,因此安全的方法是在一开始始终使用括号,直到您知道何时可以省略它们。
# With parentheses
myMethod()
# Without parentheses
myMethod
如果要使用参数调用方法,则需要将参数放在括号内(或者如果您省略了括号,则放在“无形”括号内),并且如果有多个参数,则用逗号分隔。
def myMethod(a, b)
puts a + b
end
myMethod(1, 2)
myMethod 1, 2
myMethod("abc", "xyz")
您也可以使用变量的值作为参数。
def myMethod(a)
puts "Hello " + a
end
name = "World"
myMethod(name)
通常,方法可能具有许多(如果不是全部)参数,这些参数可能具有巧妙的默认值。每次调用方法时都必须指定所有参数可能很麻烦。因此,可以定义默认值。这实际上非常容易;只需在定义中为参数赋值即可。您可以组合有和没有默认值的参数。
def myMethod(message="This is a default value")
puts message
end
myMethod()
myMethod("Where has the default value gone?")
您通常希望方法返回一个值。您可以使用return语句来实现。
def myMethod
return "Hello"
end
puts myMethod()
但是,因为 Ruby 开发者很懒,他们开发了一个总是返回最后一个求值语句的功能(有时很难知道哪个语句是最后一个)。了解这一点,您可以将上面的示例改为以下示例
def myMethod
"Hello"
end
puts myMethod()
注意,一个return语句将结束方法的执行。结合您可以不返回值返回这一事实,这在某些条件满足时停止方法进一步执行通常很有用。
def myMethod
while true
puts "Because the condition of this while loop is 'true' it will run forever, right?"
return
end
end
此页面只是为了简单介绍如何在 Ruby 中使用方法,因为这是一个非常重要的概念。但是,有一个关于方法以及这里未提及的一些其他很酷功能的 更详细的页面。