Tôi đã thực hiện một lỗi đánh máy đáng tiếc nhất chi phí cho tôi một thời gian khá quý:Thuộc tính Count hoạt động như thế nào trong Powershell?
$errors.Count
này trả về "0
", ngay cả khi có những sai sót, bởi vì tên biến nên ít. này không công việc:
$error.clear() # To ensure a correct repro
Copy-Item asdf fdsa # Will show an error
$error.Count # Will output "1"
Tuy nhiên, bây giờ tôi muốn biết tại sao $errors.Count
đã cho tôi bất cứ điều gì ở tất cả, và tại sao nó đã cho tôi "0
". Vì vậy, tôi đã đi vào để làm một số xét nghiệm và có kết quả như sau:
$asdf.Count # Will output "0"
$nrOfEinsteinsInSpace.Count # Will output "0"
$a = 0; $a.Count; # Will output "1"
$b = 2; $a.Count; # Will output "1"
$x = 1,2,3; $x.Count; # Will output "3"
Và thu thập dữ liệu thậm chí nhiều hơn để có thể đặt một câu hỏi hợp lý ở đây tôi đã làm:
$true.Count # Will output "1"
$false.Count # Will output "1"
Vì vậy, chúng ta có các trường hợp khác nhau:
- Biến dạng tương tự, trong đó
.Count
sẽ xuất số lượng mục. - Biến không tồn tại, trong đó
.Count
sẽ xuất "0". - Biến được khai báo, trong đó
.Count
sẽ xuất "1". - Biến tích hợp, trong đó
.Count
sẽ xuất "1".
Trường hợp 2, 3 và 4 không có ý nghĩa gì với tôi (chưa). Chuyện gì đang xảy ra ở đây? Tài liệu này ở đâu? Tài sản .Count
hoạt động như thế nào?
Wow, một câu trả lời khá khác so với hai câu trả lời khác của @DavidBrabant và Paul. Tôi đánh giá cao cả hai nỗ lực, tôi không chắc liệu tôi có đủ điều kiện để quyết định câu trả lời nào chấp nhận hay không. Sẽ phải kiểm tra tại nơi làm việc vào ngày mai nếu tôi thấy sự khác biệt tương tự giữa V2 và V3. Cảm ơn vì đã dành thời gian cho tôi! – Jeroen
Tôi là nhà phát triển trong nhóm PowerShell đã triển khai thực hiện điều này, vì vậy hãy bỏ qua những kỷ niệm bị lỗi, câu trả lời của tôi là có thẩm quyền như bạn có thể nhận được. –
Hãy coi chừng rằng ** chế độ ** nghiêm ngặt vẫn ném một lỗi như ghi chú Jason! Điều đó khiến tôi gãi đầu mình ... –