tôi có thể tạo ra một mảng với 'khe rỗng' trong đó:Làm cách nào để tạo một mảng ẩn danh ([]) với 'các vùng trống'?
$ perl -wde 1
...
DB<1> $x[2] = 0
DB<2> x \@x
0 ARRAY(0x103d5768)
0 empty slot
1 empty slot
2 0
hoặc
DB<3> $#y = 4
DB<4> x \@y
0 ARRAY(0x103d5718)
0 empty slot
1 empty slot
2 empty slot
3 empty slot
4 empty slot
Xin lưu ý: đây không phải là giống như gán undef
.
Nhưng làm cách nào để chỉ định điều đó cho mảng ẩn danh bằng cách sử dụng [
và ]
?
này sẽ không làm việc:
DB<5> x [,,0]
syntax error at (eval 27)[/usr/local/lib/perl5/5.10.0/perl5db.pl:638] line 2, near "[,"
Và điều này không quá, vì tôi chỉ nhận được giá trị giao:
DB<6> x []->[2] = 0
0 0
Bonus câu hỏi: làm thế nào tôi có thể kiểm tra một 'khe trống mảng' trong kịch bản Perl của tôi?
Bối cảnh: Trong các tập lệnh thử nghiệm của tôi, tôi muốn có thể so sánh chính xác nội dung mảng. Ví dụ tôi muốn phân biệt giữa 'không được chỉ định' và 'được gán với giá trị không xác định'.
Cảm ơn mọi thông tin chi tiết.
Bạn có nghĩa là làm thế nào để làm một nhiệm vụ trực tiếp cho một mảng, sử dụng '[]' cho mảng ẩn danh, có các giá trị bên trong mảng trả về false khi được thử nghiệm với 'exist'? – TLP
Có. Là lười biếng, nó sẽ là tốt đẹp để có thể xác định điều này trong một tuyên bố. Nếu không, tôi phải sử dụng 'undef' hoặc làm điều đó trong nhiều câu lệnh. – hexcoder