如何在ruby对象中使用变量进行方法调用?

时间:2012-06-26 01:25:55

标签: ruby variables interpolation

我有一个匿名哈希数组,用于定义要作为输出打印的配置。每个匿名哈希都有一个标签和一个字段作为键及其对应的值。

在Perl中,我会做类似下面的事情:

foreach my $config ( @configurations )
{
    foreach my $element ( keys %{$configuration} )
    {
        print $element . " - " . $config->{$element} . "\n";
    }
}

观察使用上面代表键的变量$element(即标签和字段)。

我想在ruby中做同样的事情,但是当我尝试对Ruby对象使用它时,我发现#{variable-name}不起作用。

如何使用变量作为方法调用Ruby对象?

1 个答案:

答案 0 :(得分:4)

我相信你的意思是:

my_hash.each do |key, value| 
  puts "#{key} - #{value}"
end

在ruby中,这被称为block。它调用内部函数并传递一些变量以在其作用域内使用。 就像文档说的那样:

  

为hsh中的每个键调用一次,将键值对作为参数传递。   http://ruby-doc.org/core-1.9.3/Hash.html#method-i-each