如何在Ruby

时间:2015-04-24 10:09:14

标签: ruby methods

以下是示例代码

def fun(a = "default", b = "default")
    puts "#{a} and #{b}"
end
fun("hello")

这里我只想为b而不是a传递值(即输出将是默认值和hello)。

任何人都可以帮我解决这个问题。

1 个答案:

答案 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")