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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.