arrays - perl6 : Array; get rid of empty slot (Any)

标签 arrays raku

对于仅包含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/

相关文章:

signature - 多个 MAIN 签名

exception-handling - 处理无效的文件句柄(也可能是其他无效对象)

raku - 我该如何解决 "The iterator of this Seq is already in use"?

arrays - 如何在 swift 5.0 的数组中找到最小的非零 INT?

arrays - 如何确定 $var 是否作为完整单词存在于数组中

java - 在数组中搜索字符串出现的次数

module - 检查可选模块可用性的最佳方法

对哈希 kv 对进行排序

php - SQL查询优先考虑php数组中的值

javascript - 嵌套 Promise 未推送到数组