Hapus elemen dari daftar atau array tanpa artefak (Apa pun) di Raku

9

Saya telah mencari di Dokumentasi Raku dan beberapa buku & tutorial dan beberapa posting Stackoverflow untuk mempelajari cara menghapus item dari daftar / array dengan bersih yaitu tanpa memiliki (Apa saja) di tempat elemen yang dihapus

my @s = <3 18 4 8 92 14 30>;
my $item = 8; 
my $index =  @s.first($item, :k);
@s[$index]:delete;

Ini menghasilkan [3 18 4 (Ada) 92 14 30] dan jadi saya tidak bisa melakukan operasi apa pun di atasnya, misalnya saya tidak bisa menerapkannya [+].

Apakah ada cara untuk menghapus item dari daftar / array tanpa itu (Ada) ?

Lars Malmsteen
sumber

Jawaban:

12

Iya. Menggunakan metode sambatan :

my @s = <3 18 4 8 92 14 30>;
my $item = 8; 
my $index =  @s.first($item, :k);
@s.splice($index,1);
say @s;  # [3 18 4 92 14 30]

Atau Anda dapat menggunakan modul Adverb :: Eject , sehingga Anda dapat menulis di atas sebagai:

use Adverb::Eject;
my @s = <3 18 4 8 92 14 30>;
my $item = 8; 
my $index =  @s.first($item, :k);
@s[$index]:eject;
say @s;  # [3 18 4 92 14 30]
Elizabeth Mattijsen
sumber