以下是示例代码
def fun(a = "default", b = "default")
puts "#{a} and #{b}"
end
fun("hello")
这里我只想为b
而不是a
传递值(即输出将是默认值和hello)。
任何人都可以帮我解决这个问题。
答案 0 :(得分:4)
如果您使用Ruby> = 2,您可以将其转换为使用keyword arguments,如下所示:
def fun(a: "default", b: "default")
puts "#{a} and #{b}"
end
fun(b: "hello")
这应该产生预期的输出。
希望有所帮助!
祝你好运! 更新 - hash
"接近"
def fun(options = {})
defaults = { a: "default", b: "default" }
options = defaults.merge(options)
puts "#{options[:a]} and #{options[:b]}"
end
fun(b: "hello")