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) ?

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]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.