gpt4 book ai didi

arrays - 是否存在我必须将 `elems` 与数组一起使用才能使其工作的情况?

转载 作者:行者123 更新时间:2023-12-03 14:07:39 25 4
gpt4 key购买 nike

阅读后this answer我查看了我的代码并找到了一些我使用的地方 elems与数组。

我可以删除所有 elems不影响代码:

my @a = 1, 2, 3, 4, 5;
my $b = [ 1, 2, 3, 4 ];

my $i = 2;
say $i + @a.elems;
say $i + @a;

say "===============";
say @a.elems;
say 0 + @a;

say "===============";
say $b.elems / 2;
say $b / 2;

say "===============";
while state $c++ > $b.elems {
say $c;
}
while state $d++ > $b {
say $d;
}

这让我想知道是否存在必须使用 elems 调用数组的情况。函数使代码工作。

最佳答案

每当数字运算符看到 Iterable作为其操作数之一,它将调用 .elems方法就可以了。有时这会导致 FailureException被抛出:

$ raku -e 'say (1 ... *) + 42'
Cannot .elems a lazy list

请注意,使用 .elems在您的代码中有两个优点:
  • 它使您的意图明确,对 future 的维护者有益
  • 它会稍微高效一点,因为它会跳过运算符(operator)调用
  • 关于arrays - 是否存在我必须将 `elems` 与数组一起使用才能使其工作的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61025276/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com