在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中創新方法參數,使代碼更加靈活、可讀和可維護。