对于仅包含Str元素的Array,我可以使用grep(Str)来消除:delete;之后的空插槽。
例如:
my @prov_cd = <AB BC MB NB NL NS ON PE QC SK>;
@prov_cd[2]:delete; # Manitoba deleted
@prov_cd; # [AB BC (Any) NB NL NS ON PE QC SK]
my @prov_cd_cleanup = @prov_cd.grep(Str); # get rid of (Any) empty slot: [AB BC NB NL NS ON PE QC SK]
@prov_cd = @prov_cd_cleanup; # [AB BC NB NL NS ON PE QC SK]
数组可以包含多种对象类型。我希望“grep”所有不是(任何)的东西。
我怎样才能做到这一点 ?
谢谢你。
最佳答案
首先,请注意,如果您通过splice而不是:delete
删除条目,则项目将被移动并且不会产生“空洞”。
现在,如果您确实只想过滤Any
,则可以通过
@prov_cd.grep(* !=== Any)
但是,我怀疑您正在寻找
@prov_cd.grep(*.defined)
关于arrays - perl6 : Array; get rid of empty slot (Any),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50571359/