Xóa một phần tử khỏi danh sách hoặc mảng mà không có phần tử (Bất kỳ) trong Raku


9

Tôi đã tìm kiếm Tài liệu Raku và một số sách & hướng dẫn và một số bài đăng Stackoverflow để tìm hiểu cách xóa một mục khỏi danh sách / mảng một cách sạch sẽ, tức là không có (Bất kỳ) ở vị trí của phần tử bị xóa

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

Điều này dẫn đến [3 18 4 (Bất kỳ) 92 14 30] và vì vậy tôi không thể thực hiện bất kỳ thao tác nào trên đó, ví dụ: tôi không thể áp dụng [+]nó.

Có cách nào để xóa một mục khỏi danh sách / mảng mà không có (Any) không?

Câu trả lời:


12

Đúng. Sử dụng phương pháp mối nối :

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]

Hoặc bạn có thể sử dụng mô-đun Adverb :: Eject , để bạn có thể viết như trên:

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]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.