带有可选参数的方法

有没有办法制作一个可以接受参数的方法,但也可以在没有参数的情况下调用,在这种情况下,参数被认为是如下所示?

 some_func(variable) some_func 

 def some_func(variable = nil) ... end 

除了使用默认值的更明显的参数选项之外, Sawa已经展示过,在某些情况下使用数组或散列可能会很方便。 两种解决方案都将nil保留为一个参数。

1.作为arrays接收:

 def some_func(*args) puts args.count end some_func("x", nil) # 2 

2.作为哈希发送和接收:

 def some_func(**args) puts args.count end some_func(a: "x", b: nil) # 2 

您还可以使用哈希作为参数并拥有更多自由:

 def print_arg(args = {}) if args.has_key?(:age) puts args[:age] end end print_arg # => print_arg(age: 35, weight: 90) # => 35