+ -
当前位置:首页 → 问答吧 → 总是在函数开始my $self=shift是要干啥

总是在函数开始my $self=shift是要干啥

时间:2011-07-14

来源:互联网

程序很多函数开始都是
sub a{
my $self = shift;
然后就
$self-> function b.......

}

这样传给b的往往是什么呢。
而且他还好像这样用过递归

sub a{
my $self  = shift;
然后就
$self -> a(sss).......

}

作者: bjzjyang   发布时间: 2011-07-14

回复 bjzjyang


$self 在这里相当于 C++ 里的 this 指针,由于 $self 是“偷偷地”传进来的,这时参数列表相当于 ($self, ARG1, ARG2),所以要用 shift 移去,这样子才能得到传入参数列表 (ARG1, ARG2)

作者: 3P党人   发布时间: 2011-07-14

忘了说 a有时候带参数 有时候不带

作者: bjzjyang   发布时间: 2011-07-14