Raku에서 (Any) 인공물이없는 목록 또는 배열에서 요소 삭제


9

Raku Documentation과 여러 서적 및 자습서 및 여러 Stackoverflow 게시물을 검색하여 목록 / 배열에서 항목을 깨끗하게 삭제하는 방법, 즉 삭제 된 요소 대신 (Any) 를 사용 하지 않는 방법을 배웠 습니다.

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

결과적으로 [3 18 4 (Any) 92 14 30]이 되었으므로 어떤 작업도 수행 할 수 없습니다 [+]. 예를 들어 적용 할 수 없습니다 .

그없이 목록에서 항목을 삭제하는 방법 / 배열이 있나요 (모든) ?

답변:


12

예. 은 Using 스플 라이스 방법 :

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]

또는 Adverb :: Eject 모듈을 사용 하여 위와 같이 작성할 수 있습니다.

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]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.