+ -
当前位置:首页 → 问答吧 → 那个闭包究竟是什么东东呀

那个闭包究竟是什么东东呀

时间:2011-01-11

来源:互联网

看了《Intermediate Perl》,也看了其他的资料,可就是对闭包这个概念不清不楚的。
麻烦高手有没有通俗易懂的解释呀。谢了。

作者: ahdong2007   发布时间: 2011-01-11

回复 ahdong2007


    就是利用垃圾回收 保存匿名变量

作者: guap514   发布时间: 2011-01-11

A subroutine (usually anonymous) that uses lexical variables defined outside of it.
It “closes over” those variables, hence the name.




QUOTE:
## $state is recreated for each call to =make_state=
sub make_state {
my $state = shift;
return sub { $state = shift if @_; return $state; }
}

## create closures
my $eth1 = make_state();
my $eth2 = make_state("inactive");

## use the closure to set and get the state
$eth1->( "down" );
$eth2->( "up" );
my $eth1State = $eth1->();
my $eth2State = $eth2->();

## print the results
print "eth1 state is : $eth1State\n";
eth1 state is : down

print "eth2 state is : $eth2State\n";
eth1 state is : up

作者: 兰花仙子   发布时间: 2011-01-11