要在perl6中从数组中选择多个元素,这很容易:只需使用索引列表即可:
> my @a = < a b c d e f g >;
> @a[ 1,3,5 ]
(b d f)
Run Code Online (Sandbox Code Playgroud)
但是要取消选择这些元素,我必须使用Set:
> say @a[ (@a.keys.Set (-) (1,3,5)).keys.sort ]
(a c e g)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更简单的方法,因为我使用的数组通常很大?
返回没有第 n 个元素的列表的优雅且有效的方法是什么?我现在正在使用类似的东西:
my @b = @a;
@b.splice($n,1);
return @b;
Run Code Online (Sandbox Code Playgroud)
但这不是很优雅,而且可能也不是高效的。
(类似的东西return @b.spliced($n,1)会更好,但这不起作用。)
return flat @a[0..^$n,$n^..*]
Run Code Online (Sandbox Code Playgroud)
也好不了多少。