You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Perl 6数组中查找元素的索引?

在Perl 6数组中查找元素索引的几种方法

嘿,针对你给出的@weekdays数组,要找到'Thursday'的索引其实很简单,Perl 6提供了几个内置方法来搞定这个需求,我给你详细说说:

1. 使用.first方法(推荐找单个匹配)

first方法默认返回第一个匹配的元素,但加上:k参数后,它会返回该元素的索引(Perl 6数组的索引是从0开始的)。

代码示例:

my @weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
my $thu-index = @weekdays.first(* eq 'Thursday', :k);
say $thu-index; # 输出:3

这里的* eq 'Thursday'是一个匿名函数,用来检查数组元素是否等于'Thursday',:k是命名参数,告诉方法返回索引而非元素本身。

2. 使用.grep方法(适合找所有匹配项)

如果你的数组里可能有多个相同的元素,想要获取所有匹配元素的索引,可以用grep方法搭配:k参数,它会返回一个包含所有匹配索引的列表:

# 假设数组有重复元素的情况
my @test = ['Thursday', 'Monday', 'Thursday'];
my @all-indices = @test.grep(* eq 'Thursday', :k);
say @all-indices; # 输出:(0 2)

3. 手动遍历(不推荐,但适合理解原理)

如果你想手动实现索引查找,也可以通过循环遍历数组的索引和元素:

my $target = 'Thursday';
my $found-index = Nil;
for @weekdays.kv -> $idx, $day {
    if $day eq $target {
        $found-index = $idx;
        last; # 找到第一个就退出循环
    }
}
say $found-index; # 输出:3

不过这种方法没必要,因为Perl 6的内置方法已经足够简洁高效啦。

内容的提问来源于stack exchange,提问作者chenyf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:24:04