那个闭包究竟是什么东东呀
时间: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.
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
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28