在循环中找到它。我已经读过关于拼接的内容,但它让我更加困惑。 我不熟悉Perl,但我正在尝试将算法翻译成另一种语言。
my $sill = splice(@list,int(rand(@list)),1);
last unless ($sill);
更具体一点:如果它不从最后一个退出循环,那么$ sill里面会是什么?
感谢您的帮助!
答案 0 :(得分:4)
这会从数组@list
中随机删除一个元素。该值已分配给$sill
。如果这是一个假值,则封闭循环(未显示)将被打破。
splice
获取数组,偏移量和长度,以及替换列表。如果省略替换,则删除元素。
长度是常数(1个元素),但偏移量计算为0和@list
长度之间的随机整数。
答案 1 :(得分:2)
这意味着:
list
中删除随机元素(0 - >列表元素的数量)和sill
变量分配已删除的元素(pop()
之类的)和sill
变量为假