2012-06-26 27 views
1

我有一个匿名散列数组,我用它来定义一个配置作为输出打印出来。每个匿名散列都有一个标签和一个字段作为关键字以及相应的值。如何在ruby对象中使用变量进行方法调用?

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

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

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

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

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

回答

4

我相信你的意思是这样的:

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

在红宝石这就是所谓的block。它调用一个内部函数并传递一些变量在其范围内使用。 像文档说的那样:

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

相关问题