在循环中找到它。我已经阅读了有关 splice 的内容,但它让我更加困惑。 我不熟悉 Perl,但正在尝试将算法翻译成另一种语言。
my $sill = splice(@list,int(rand(@list)),1);
last unless ($sill);
更具体地说:如果 $sill 没有从最后退出循环,它里面会是什么?
感谢您的帮助!
最佳答案
这从数组 @list
中随机删除一个元素。该值分配给 $sill
。如果这是一个假值,则封闭循环(未显示)被打破。
splice
接受一个数组、一个偏移量和一个长度,再加上一个替换列表。如果省略替换,则删除元素。
长度是常量(1 个元素),但偏移量计算为介于 0 和 @list
长度之间的随机整数。
关于perl - 这段 Perl 代码用外行的话来说是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773407/