Bao nhiêu mục trong Perl mảng

Nhiệm vụ. Trong mã của Perl chương trình có một mảng @arr (ba chữ cái đầu từ chữ "mảng"). Trong mảng này có giá trị. Cần phải biết bao nhiêu trong mảng này có yếu tố.

Có rất nhiều cách để giải quyết vấn đề này.

Sử dụng vô bối cảnh

Nếu bạn sử dụng các mảng vô trong bối cảnh đó, sau đó giá trị này sẽ là số nguyên tố trong mảng:

my $number_of_elements = scalar(@arr);

Chương trình ví dụ:

▶ Run
#!/usr/bin/perl

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

print scalar(@arr);

Chương trình hiển thị số 3.

Vô bối cảnh có thể đạt được không chỉ bằng cách sử dụng scalar(), nhưng với sự giúp đỡ của một số hoạt động số học, mà không thay đổi số, ví dụ để thêm/trừ zero hoặc nhân/chia đơn vị:

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

Để sử dụng một biến với các chỉ số của các yếu tố cuối cùng

Một cách để tìm ra chiều dài của các mảng là để sử dụng một biến kết hợp với các mảng và trong đó có chứa số lượng các phần tử cuối cùng. Nếu các mảng được gọi là @arr, như một biến sẽ được gọi là $#arr. Các yếu tố đầu tiên trong một Perl mảng có số 0, vì vậy, để có được số của các bạn cần thêm này biến thành 1.

my $number_of_elements = $#arr + 1;

Làm thế nào để đếm yếu tố khác nhau và ngay

Nó không có vấn đề gì giá trị được chứa trong mảng. Có thể đơn giản dây và số và cấu trúc phức tạp.

Nếu các mảng có giá trị, ngay sau đó họ cũng được. Đây là một ví dụ về một mảng, trong đó có yếu tố 4:

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

Cách sai lầm của đếm được sử dụng chiều dài()

Đây là một mẫu chương trình. Chương trình hiển thị các số 1 và sai có thể giả định rằng length() áp dụng cho một loạt trở về số thành phần trong nó.

▶ Run
#!/usr/bin/perl

my @arr = ('one');

print length(@arr);

Nhưng đây là một sai giả định. Để xác minh này, anh có thể kiểm tra cho một mảng my @arr = ('one', 'two', 'three') length()sẽ quay lại 1.

length() áp dụng cho các mảng trả lại số của các yếu tố và số chữ trong số nguyên tố. Nếu các mảng có 9 hoặc ít hơn mục, sau đó length(@arr) sẽ quay trở lại 1 nếu các mảng chứa từ 10 đến 99 yếu tố length(@arr) sẽ trở lại 2, và như vậy.

Chủ đề liên quan

Các bài viết khác