Bagaimana untuk mendapatkan elemen acak dari array di Perl

Tugas. Dalam program dalam bahasa pemrograman Perl memiliki array dengan nilai-nilai. Anda perlu untuk mendapatkan elemen acak dari array ini.

Solusi untuk masalah ini di Perl terlihat sangat indah dan elegan. Menggunakan fungsi rand() untuk menghasilkan random index elemen.

Berikut adalah contoh kode. Ada array yang di array ini dengan warna. Kode menampilkan warna acak dari array.

▶ Run
#!/usr/bin/perl

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

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

print $color;

Bagaimana cara kerjanya. Ada sebuah array dari @colors. Hal ini telah 5elemen. Dalam rangka untuk alamat elemen pertama yang anda butuhkan untuk menulis $colors[0], untuk yang terakhir — $colors[4].

Dalam contoh ini, rand @colors adalah seperti rand(5). Dalam hal ini menggunakan array mengembalikan jumlah elemen dalam array. (scalar context).

rand @colors kembali nomor dari 0 (inklusif) untuk jumlah 5 (tapi tidak termasuk nomor ini). Misalnya, hasil dari operasi ini dapat nomor 3.70744988833152.

Dan langkah terakhir. Hasil rand @colors digunakan sebagai indeks array. Ie ternyata sesuatu seperti $colors[ 3.70744988833152 ]. Ini masuknya kembali sama elemen array sebagai catatan $colors[3], yaitu elemen keempat dari string 'magenta'.

Topik terkait

Artikel lainnya