现代Perl编程技巧与正则表达式应用
1. 闭包与部分应用
闭包的作用不仅仅是抽象掉结构细节,它还能让你定制特定的行为,在某种程度上,还能去除不必要的通用性。假设有一个需要多个参数的函数,例如制作圣代的函数:
sub make_sundae
{
my %args = @_;
my $ice_cream = get_ice_cream( $args{ice_cream} );
my $banana = get_banana( $args{banana} );
my $syrup = get_syrup( $args{syrup} );
...
}
在大型商场的旗舰店中,这个函数的所有定制选项可能都很有用。但如果你在天桥附近有一个外卖冰淇淋摊,只提供法式香草冰淇淋搭配卡文迪什香蕉,那么每次调用 make_sundae() 时,都要传递那些不变的参数。
部分应用技术可以将一些参数绑定到函数上,让你在调用时只需填充其余参数。使用闭包可以轻松实现这一点:
my $make_cart_sundae = sub
{
return make_sundae( @_,
ice_cream => 'French Vanilla',
banana => 'Cavendish',
);
};
这样,你就可以调用 $make_cart_sunda
超级会员免费看
订阅专栏 解锁全文
849

被折叠的 条评论
为什么被折叠?



