在Ruby中,方法參數(shù)可以通過以下幾種方式創(chuàng)新:
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
可以將一個(gè)或多個(gè)參數(shù)傳遞給方法。*args
用于接收任意數(shù)量的非關(guān)鍵字參數(shù),而**kwargs
用于接收任意數(shù)量的關(guān)鍵字參數(shù)。例如: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中創(chuàng)新方法參數(shù),使代碼更加靈活、可讀和可維護(hù)。