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

che*_*nyf 8 perl6 raku

如何在数组中找到元素的索引?

例如,给定

my @weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
Run Code Online (Sandbox Code Playgroud)

我怎么能找到索引'Thursday'

che*_*nyf 7

我最初的解决方案

@weekdays.kv.reverse.hash.{'Thursday'} # 3
Run Code Online (Sandbox Code Playgroud)

然后JFerrero使用antipairs发布了他的改进解决方案:

@weekdays.antipairs.hash.{'Thursday'} # 3
Run Code Online (Sandbox Code Playgroud)

ultimatto发布了一个副词解决方案:

@weekdays.first('Thursday', :k)  # 3
Run Code Online (Sandbox Code Playgroud)


mor*_*itz 5

您可以使用first(或者grep,如果您想了解所有匹配项,而不仅仅是第一个) with:k返回键(对于列表始终是整数索引)而不是值:

say @weekdays.first('Tuesday', :k);  # 1
Run Code Online (Sandbox Code Playgroud)