Powershell: لماذا يختلف (1) [1] عن ، $ null؟

تم إنشاؤها على ١٠ مارس ٢٠١٨  ·  3تعليقات  ·  مصدر: PowerShell/PowerShell

أحاول أن أفهم لماذا تسفر العبارتان التاليتان عن مخرجات مختلفة:

&{,$null} | % {'x'} # x
&{,(1)[1]} | % {'x'} # no output

يبدو أن كلا من ,$null و ,(1)[1] عبارة عن مصفوفتين تحتويان على عنصر واحد فارغ. ومع ذلك ، فإنهم يتصرفون بشكل مختلف أثناء الإخراج من البرنامج النصي. ماذا يحصل هنا؟

Issue-Question Resolution-Answered

ال 3 كومينتر

الثانية ترجع AutomationNull.Value والتي لم يتم تعدادها بواسطة خط الأنابيب.

تم تعداد $null .

انظر على سبيل المثال تنفيذ foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748

شكرا لك powercode. للقراء الآخرين ، إليك بعض الموارد على AutomationNull :

@ alx9r : يعود هذا إلى السؤال الذي طرحته لاحقًا في # 6436 والذي سلطت الضوء عليه في https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317 ، لكنني قررت قم بإنشاء إصدار منفصل له: # 6823

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات