Đây có thể là câu hỏi ngớ ngẩn ... Đoạn mã sau xuất ra nội dung của @arrayref
và @arraycont
tương ứng. Lưu ý sự khác biệt giữa chúng và cách thức các giá trị của chúng được gán. Tôi biết những gì các mảng vô danh nào, nhưng ai có thể giải thích tại sao có một sự khác biệt?Perl: tham chiếu mảng so với mảng ẩn danh
Cảm ơn bạn rất nhiều.
@arrayref =();
@array = qw(1 2 3 4);
$arrayref[0] = \@array;
@array = qw(5 6 7 8);
$arrayref[1] = \@array;
print join "\t", @{$arrayref[0]}, "\n";
print join "\t", @{$arrayref[1]}, "\n";
@arraycont =();
@array = qw(1 2 3 4);
$arraycont[0] = [@array];
@array = qw(5 6 7 8);
$arraycont[1] = [@array];
print join "\t", @{$arraycont[0]}, "\n";
print join "\t", @{$arraycont[1]}, "\n";
đầu ra
5 6 7 8
5 6 7 8
1 2 3 4
5 6 7 8
A * cạn * sao chép, nếu '@array 'các tham chiếu có chứa sau đó' [@array] 'sẽ chứa các tham chiếu tương tự. Sự khác biệt sâu/nông không áp dụng trong trường hợp này, nhưng tôi nghĩ rằng nó là đáng nói đến anyway. –
Cảm ơn, đã cập nhật. – yamen