1

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

在 Perl 中,我会执行以下操作:

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

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

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

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

4

1 回答 1

4

我相信你的意思是:

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

在红宝石中,这称为 a block。它调用内部函数并传递一些变量以在其范围内使用。就像文档说的那样:

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

于 2012-06-26T01:31:33.383 回答