📅  最后修改于: 2023-12-03 15:19:52.771000             🧑  作者: Mango
Ruby中的方法是一块代码,可以用于执行某些特定操作。方法可以有参数和返回值,并且可以在需要的时候被调用。
Ruby中定义方法使用关键字def
,后面紧跟着方法名,方法名以小写字母开头,单词之间使用下划线分隔。方法可以有参数,多个参数使用逗号分隔,也可以没有参数。如果有返回值,可以使用return
语句显式地返回,否则默认返回最后一行的执行结果。
def greet(name)
puts "Hello, #{name}!"
end
greet("Ruby") # Hello, Ruby!
Ruby中方法的参数可以指定默认值,这样在调用方法时如果省略了参数,则使用默认值。参数还可以使用可变长度参数,在参数前面加上*
,表示接受一个数组作为参数。如果要接受关键字参数,可以使用**
。例如:
def greet(name, gender: "male", *hobbies, **options)
puts "Hello, #{gender == "male" ? "Mr." : "Ms."} #{name}!"
puts "Your hobbies are: #{hobbies.join(", ")}" if hobbies.any?
puts "Your options are: #{options}" if options.any?
end
greet("Ruby", "female", "coding", "reading", age: 20, location: "San Francisco")
# 输出:
# Hello, Ms. Ruby!
# Your hobbies are: coding, reading
# Your options are: {:age=>20, :location=>"San Francisco"}
Ruby中,方法可以使用return
语句显式地返回值,也可以省略return
语句,返回最后一行的执行结果。如果没有返回值,可以使用nil
表示空值。
def add(a, b)
return a + b
end
sum = add(1, 2)
puts sum # 输出3
def subtract(a, b)
a - b # 最后一行的执行结果作为返回值
end
result = subtract(4, 2)
puts result # 输出2
def no_return
# 没有返回值
end
value = no_return
puts value.inspect # 输出nil
Ruby中,可以将多个方法调用链接在一起,称为方法链。这样可以写出更加简洁的代码。
name = "ruby on rails"
puts name.capitalize.upcase # 输出 RUBY ON RAILS
def square(number)
number * number
end
def cube(number)
number * square(number)
end
puts square(3) # 输出9
puts cube(3) # 输出27