Jak uzyskać losowy element z tablicy w Perl

Zadanie. W programie w języku programowania Perl jest tablica z wartościami. Należy uzyskać losowy element z tablicy.

Rozwiązanie tego zadania w Perl okazuje się bardzo piękne i eleganckie. Używana jest funkcja rand() , aby uzyskać losowego indeksu elementu.

Oto przykład kodu. Jest tablica, w którym w tej tablicy z kolorami. Kod wyświetla losowy kolor z tej tablicy.

▶ Run
#!/usr/bin/perl

my @colors = ('red', 'green', 'blue', 'magenta', 'white');

my $color = $colors[ rand @colors ];

print $color;

Jak to działa. Istnieje szereg @colors. Jest w nim 5elementów. Aby skontaktować się z pierwszego elementu trzeba napisać $colors[0], do ostatniego — $colors[4].

W tym przykładzie rand @colors to tak, że rand(5). Przy takim korzystania z tablicy zwraca ilość elementów w tablicy. (скалярный kontekst).

rand @colors zwraca liczbę od 0 (włącznie) do liczby 5 (ale nie w tym to liczba). Na przykład, wynik tej operacji może być liczba 3.70744988833152.

I ostatni krok. Wynik rand @colors jest używany jako indeks szyku. Czyli wychodzi na to że jest coś takiego jak $colors[ 3.70744988833152 ]. Ta nagrywanie zwraca dokładnie taki sam element w tablicy jak i nagrywanie $colors[3], czyli czwarty element — wiersz 'magenta'.

Tematy pokrewne

Inne artykuły