Perl dizisinin son N öğelerini elde etmenin en iyi yolu nedir?Perl dizisinin son N öğelerini elde etmenin en iyi yolu nedir?
Dizinin N'den küçük olması durumunda, dönüşte undefs
bir demet istemiyorum.
Perl dizisinin son N öğelerini elde etmenin en iyi yolu nedir?Perl dizisinin son N öğelerini elde etmenin en iyi yolu nedir?
Dizinin N'den küçük olması durumunda, dönüşte undefs
bir demet istemiyorum.
@last_n = @source[-$n..-1];
sonra bir undef
s, gerektiriyorsa:
@last_n = ($n >= @source) ? @source : @source[-$n..-1];
Bence istediğin şey slice.
my $size = (scalar @list) - 1;
my @newList = @list[$size-$n..$size];
@a = (a .. z);
@last_five = @a[ $#a - 4 .. $#a ];
say join " ", @last_five;
çıkışlar: Y Z w
v
basit, matematik yok:
@a = reverse @a;
@a = splice(@a, 0, $elements_to_keep);
@a = reverse @a;
Kaynak, $ n öğesinden daha azsa bu işe yaramaz. – mike
Tamam çalışıyor. undefs, @source'ın değer içermediği pozisyonlarda @last_n'a girer; bu, "son N elemanlarını" almak için ne anlama geldiğinin tam olarak anlamsız-mantıksız semantiği için doğrudur. – chaos
oh, Hiç böyle olumsuz aboneler kullanmadım, bugün bir şey öğrendim! – Nathan