ruby如何从散列中传递值

时间:2017-06-16 15:00:27

标签: ruby

我是ruby的新手,想要了解如何传递与ruby中的键对应的值。 我在下面的rubylike中有一个哈希 -

instance1
shutdown_port: 1234
startup_port: 1678
instance2
shutdown_port: 2234
startup_port: 2678

我想将每个实例的shutdown_portstartup_port传递给某个方法但不想混合shutdown_port& startup_port值。

类似于if keyname = shutdown_port,传递相应的值和if if keyname = startup_port,传递相应的值。

1 个答案:

答案 0 :(得分:0)

Ruby实际上允许keyword argument as of Ruby 2,它将解析哈希。 (如果您正确使用YAML.parse(file)来获取哈希值。)

在您的情况下,您需要以下内容:

# method takes keyword args
def idk(startup_port:, shutdown_port:)
  p "#{startup_port}, #{shutdown_port}"
end

# which you call like this:
idk({ startup_port: '22', shutdown_port: '80' })
# or without explicit hash
idk(startup_port: '22', shutdown_port: '80')