Ruby def 关键字
最后修改日期:2025 年 4 月 27 日
本教程解释了如何使用 Ruby 的 def 关键字来定义方法。方法是 Ruby 程序的基本构建块。
def 关键字定义了一个具有名称、参数和主体的方法。方法封装了行为,可以被多次调用。它们有助于将代码组织成可重用的单元。
Ruby 方法可以接受参数、返回值,并具有默认参数。它们可以定义在对象或类上。方法遵循命名约定。
基本方法定义
这个简单的例子演示了最基本的方法定义。该方法不接受任何参数,并执行一个简单的操作。
def greet puts "Hello, Ruby!" end greet greet
def 关键字开始方法定义,后面跟着方法名。方法主体包含要执行的代码。通过方法名调用该方法。本例调用了两次 greet。
带参数的方法
方法通常接受参数以使其更灵活。本例演示了一个接受一个参数的方法。
def greet(name)
puts "Hello, #{name}!"
end
greet("Alice")
greet("Bob")
greet 方法现在接受一个 name 参数。该参数用于字符串插值。我们通过传递不同的参数来调用该方法,以产生不同的输出。
带默认参数的方法
Ruby 允许使用默认参数值。当未提供参数时,将使用默认值。
def greet(name = "Ruby")
puts "Hello, #{name}!"
end
greet("Alice")
greet
当未提供参数时,name 参数默认为“Ruby”。第一次调用提供了一个参数,第二次调用使用了默认值。默认参数使方法更加灵活。
带返回值的 C# 方法
方法可以使用 return 关键字返回值。最后一个表达式的值默认会被返回。
def square(x)
x * x
end
result = square(5)
puts "5 squared is #{result}"
square 方法返回其参数的平方。我们将返回值存储在一个变量中。Ruby 会自动返回最后一个表达式的值,因此这里的 return 是可选的。
多个参数
方法可以接受多个参数。本例演示了一个计算三个数字之和的方法。
def sum(a, b, c)
a + b + c
end
total = sum(10, 20, 30)
puts "The sum is #{total}"
sum 方法接受三个参数并返回它们的和。我们在调用方法时传递三个参数。Ruby 计算加法表达式并返回结果。
可变数量的参数
Ruby 方法可以使用星号 (*) 运算符接受可变数量的参数。这对于灵活的方法定义非常有用。
def average(*numbers) numbers.sum.to_f / numbers.size end puts average(1, 2, 3) puts average(10, 20, 30, 40, 50)
*numbers 参数将所有参数收集到一个数组中。我们通过对总数进行求和并除以计数来计算平均值。该方法适用于任意数量的参数。
关键字参数
Ruby 支持关键字参数,以实现更具可读性的方法调用。参数通过名称而不是位置传递。
def create_person(name:, age:, occupation: "Developer")
{ name: name, age: age, occupation: occupation }
end
person = create_person(name: "Alice", age: 30)
puts person.inspect
该方法定义了带有默认值的命名参数。我们使用关键字语法调用它。这使得调用更具描述性且与顺序无关。默认值使参数成为可选的。
来源
本教程通过示例介绍了 Ruby 的 def 关键字,包括方法定义、参数、返回值和高级功能。
作者
列出 所有 Ruby 教程。