我想删除SetHash
的任何元素,以便返回其值:
my SetHash $a;
$a<m n k> = 1..*;
my $elem = $a.mymethod;
say $elem; # n
say $a; # SetHash(m k)
我可以分两个步骤进行操作,如下所示。有没有更好的办法?
my $elem = $a.pick;
$a{$elem}--;
顺便说一句,是否有更惯用的方式将多个元素添加到
SetHash
中?以下是否更好?
my SetHash $a;
$a{$_}++ for <m n k>;
要么
my SetHash $a;
$a<m n k> X= True;
最佳答案
由于您想从集合中删除任何随机元素并返回您得到的值,因此我建议在Setty事物上使用grab
方法(仅适用于可变集合,例如SetHash
):https://docs.perl6.org/type/SetHash#(Setty)_method_grab
取决于您需要的确切返回值,抓斗对可能更好。