📜  Ruby方法(1)

📅  最后修改于: 2023-12-03 15:19:52.771000             🧑  作者: Mango

Ruby方法介绍

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