是否有等效于 Perl 的$_
功能?我正在用 C# 重写一些旧的 perl 脚本,但我从未学过任何 perl。这是我想要弄清楚的一个例子
sub copyText {
while($_[0]){
$_[1]->Empty();
$_[0] = $_[1]->IsText();
sleep(1);
}
首先,$_
不是函数。它只是一个普通变量(恰好被许多内置函数读取和更改)。
其次,您发布的代码不使用$_
. @_
它正在访问参数列表的元素。
您发布的代码的更具可读性的版本是:
sub copyText {
my ($arg1, $arg2) = @_;
while ($arg1) {
$arg2->Empty();
$arg1 = $arg2->IsText();
sleep(1);
}
$_[0] = $arg1; # arg1 is passed by reference
}
Empty
和一个名为的方法IsText
。抱歉,我不懂 C#,但希望你能继续前进。
Perl的
$_
功能
这不是一个函数。这是一个代词,意思是“它”。
还有另一个特殊变量@_
,它是一个代词,意思是“他们”。
C# 中没有类似物。