Các nhà điều hành ++ trong Perl

Các cộng với đôi điều hành được sử dụng trong Perl để tăng giá trị của một biến bởi một.

Ví dụ:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

Chương trình sẽ hiển thị các số 101.

Các hình thức ghi

Có hai hình thức ghi: bạn có thể xác định điều hành sau khi biến (Tố ký hiệu) hoặc trước khi biến (tố ký hiệu):

$i++;
++$i;

Nếu lệnh là trên một đường thẳng, không có sự khác biệt giữa tố tố và ký hiệu. Có một sự khác biệt duy nhất nếu các nhà điều hành ++ được dùng như là một phần của đội. Nếu ++ là nằm ở phía trước biến giá trị của biến sẽ tăng trước khi thực hiện phần còn lại lệnh. Nếu ++ là sau khi biến, sau đó giá trị của biến sẽ tăng sau khi thực hiện phần còn lại lệnh.

Đây là một ví dụ.

Này, chương trình hiển thị các số 100 và 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Nhưng này, chương trình hiển thị các số 101 hai lần:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ cho hàng

Các nhà điều hành ++ , có một ma thuật đặc biệt. Nó hoạt động trong một cách đặc biệt nếu nó có áp dụng cho một biến đó là một chuỗi.

Và nó là thú vị rằng các điều hành -- vì vậy, không có phép thuật.

Ví dụ. Chương trình này sẽ hiển thị các chuỗi a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

Ở đây là một số ví dụ đó sẽ làm cho các nhà điều hành ++ với chuỗi trong một biến:

'a' -> 'b'
'b' -> 'c'
'z' -> 'aa'
'aa' -> 'ab'
'az' -> 'ba'
'zz' -> 'aaa'

'A1' -> 'A2'
'A9' -> 'B0'

'undef' -> 'undeg'

'A+100' -> '1'

Khi sử dụng các nhà điều hành ++ với chuỗi có rất nhiều sự tinh tế. Tốt nhất là không để áp dụng cho các hàng. Nếu bạn sử dụng cho hàng hoạt động, bạn có rất tốt, sự hiểu biết của làm thế nào nó hoạt động hoặc có lỗi. Nhưng nó có thể là người sau đó bạn sẽ phải làm việc với mã này không phải như vậy cũng hiểu làm thế nào một ++ cho dây và khi bạn thay đổi mã để thêm lỗi.

Lạm dụng

Các nhà điều hành ++ chỉ có thể được sử dụng cho các biến. Nếu anh cố gắng sử dụng ++ không cho biến, và các primes, nó sẽ tạo ra một lỗi. Đây là một ví dụ của mã với đề:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

Khi bạn chạy chương trình này, nó sẽ lỗi:

Can't modify constant item in postincrement (++) at script.pl line 3, near "100++"
Execution of script.pl aborted due to compilation errors.

Tương tự như vậy, nó không thể được áp dụng cho mảng:

▶ Run
#!/usr/bin/perl

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

@arr++; # error
Can't modify private array in postincrement (++) at script.pl line 5, near "@arr++"
Execution of script.pl aborted due to compilation errors.

Và băm:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
);

%h++; # error
Can't modify private hash in postincrement (++) at script.pl line 7, near "%h++"
Execution of script.pl aborted due to compilation errors.

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