带有可选参数的方法
有没有办法制作一个可以接受参数的方法,但也可以在没有参数的情况下调用,在这种情况下,参数被认为是如下所示?
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