Rakuの(任意の)アーティファクトなしでリストまたは配列から要素を削除する


9

私は、リスト/配列から項目を削除する方法を学ぶために楽ドキュメントといくつかの書籍&チュートリアルやいくつかのStackOverflowの記事を検索したきれいにせずに、すなわち(任意)削除された要素の代わりに、

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

はい。スプライス方法を使用する:

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.