在Ruby中,方法参数可以通过以下几种方式创新:
def my_method(name, age, **options)
puts "Name: #{name}, Age: #{age}"
puts "Options: #{options.inspect}"
end
my_method(name: "John", age: 30, city: "New York")
def my_method(name, age=18)
puts "Name: #{name}, Age: #{age}"
end
my_method("John") # 输出 "Name: John, Age: 18"
my_method("John", age: 30) # 输出 "Name: John, Age: 30"
*args
和**kwargs
可以将一个或多个参数传递给方法。*args
用于接收任意数量的非关键字参数,而**kwargs
用于接收任意数量的关键字参数。例如:def my_method(*args, **kwargs)
puts "Non-keyword arguments: #{args.inspect}"
puts "Keyword arguments: #{kwargs.inspect}"
end
my_method(1, 2, 3, a: 4, b: 5)
class Person
attr_accessor :name, :age
end
def my_method(person)
puts "Name: #{person.name}, Age: #{person.age}"
end
person = Person.new(name: "John", age: 30)
my_method(person)
通过这些方法,你可以在Ruby中创新方法参数,使代码更加灵活、可读和可维护。