Berapa banyak item yang di Perl array

Tugas. Dalam kode program Perl memiliki sebuah array @arr (tiga huruf pertama dari kata "array"). Dalam array ini memiliki beberapa nilai. Perlu tahu berapa banyak dalam array ini mengandung unsur-unsur.

Ada beberapa cara untuk memecahkan masalah ini.

Menggunakan konteks skalar

Jika anda menggunakan array dalam konteks skalar, maka nilai ini akan menjadi jumlah elemen dalam array:

my $number_of_elements = scalar(@arr);

Contoh program:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print scalar(@arr);

Program menampilkan angka 3.

Konteks skalar dapat diperoleh tidak hanya dengan menggunakan scalar(), tetapi dengan bantuan dari beberapa operasi aritmatika, yang tidak mengubah jumlah, misalnya, untuk menambahkan/mengurangi nol atau mengalikan/membagi unit:

my $number1 = @arr + 0;
my $number2 = @arr - 0;
my $number3 = @arr * 1;
my $number4 = @arr / 1;

Untuk menggunakan variabel dengan indeks elemen terakhir

Cara lain untuk mengetahui panjang array adalah dengan menggunakan variabel yang terkait dengan array yang berisi jumlah elemen terakhir. Jika array disebut @arr, variabel tersebut akan disebut $#arr. Elemen pertama dalam Perl array memiliki angka 0, sehingga untuk mendapatkan jumlah item yang anda butuhkan untuk menambah variabel ini untuk 1.

my $number_of_elements = $#arr + 1;

Bagaimana cara menghitung unsur-unsur yang berbeda dan undef

Tidak peduli apa nilai-nilai yang terkandung dalam array. Ada dapat menjadi sederhana string dan angka dan struktur yang kompleks.

Jika array berisi nilai undef, maka mereka juga. Berikut adalah contoh dari sebuah array yang berisi 4 elemen:

my @arr = (1, undef, 3, undef);

Salah cara menghitung adalah dengan menggunakan length()

Berikut ini adalah contoh program. Program menampilkan angka 1 dan dapat keliru menganggap bahwa length() diterapkan untuk array mengembalikan jumlah elemen di dalamnya.

▶ Run
#!/usr/bin/perl

my @arr = ('one');

print length(@arr);

Tapi ini adalah asumsi yang salah. Dalam rangka untuk memverifikasi ini, anda dapat memeriksa bahwa untuk array my @arr = ('one', 'two', 'three') length()akan kembali 1.

length() diterapkan untuk array mengembalikan jumlah elemen dan jumlah digit dalam jumlah elemen. Jika array berisi 9 atau lebih sedikit barang, maka length(@arr) akan mengembalikan 1 jika array berisi 10 sampai 99 elemen, length(@arr) akan kembali 2, dan seterusnya.

Topik terkait

Artikel lainnya