$b = (2,3) $myarray1 = @(,$b,$b) $myarray1[0].length #this will be 1 $myarray1[1].length $myarray2 = @( ,$b ,$b ) $myarray2[0].length #this will be 2 $myarray[1].length $myarray3 = @(,$b ,$b ) $myarray3[0].length #this will be 2 $myarray3[1].length
अद्यतनकिसी को भी क्यों 1 उदाहरण निम्नलिखित 2
मैं #powershell आईआरसी हम इस पर काम किया है पर लगता है की तुलना में अलग परिणाम प्राप्त होता है व्याख्या कर सकते हैं, यहाँ एक और उदाहरण है कि के खतरे को दर्शाता है है एकाधिक लाइनों पर एक सरणी में एकाधिक आइटम सूचीबद्ध करते समय शीर्ष पंक्ति की बजाय निम्न पंक्ति पर कॉमा के साथ तोड़ना।
$b = (1..20) $a = @($b, $b ,$b, $b, $b ,$b) for($i=0;$i -lt $a.length;$i++) { $a[$i].length } "--------" $a = @($b, $b ,$b ,$b, $b ,$b) for($i=0;$i -lt $a.length;$i++) { $a[$i].length }
20 20 20 20 20 20 -------- 20 20 20 1 20 20
वास्तव में पैदा करता है बल्कि यह है कि नेस्टेड सरणियों कि इसे यहाँ को मुश्किल हो सकती है का उपयोग कर पूर्णांकों
$c = @(1 , 2 , 3 , 4) for($i=0;$i -lt $c.length;$i++) { $c[$i].gettype() } "---------" $c = @(1 , 2 , 3 , 4) for($i=0;$i -lt $c.length;$i++) { $c[$i].gettype() }
का एक सरल सरणी और परिणाम है
IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Int32 System.ValueType True True Int32 System.ValueType True True Int32 System.ValueType True True Int32 System.ValueType --------- True True Int32 System.ValueType True True Int32 System.ValueType True True Object[] System.Array True True Int32 System.ValueType
मैं उत्सुक हूँ कि कैसे लोग इसे समझाएंगे। मुझे लगता है कि मैं इसे अब समझता हूं, लेकिन इसे संक्षिप्त समझने योग्य फैशन में समझाने में परेशानी होगी, हालांकि उपर्युक्त उदाहरण कुछ हद तक उस लक्ष्य की ओर जाता है।
एकमात्र औचित्य जिसे मैं सोच सकता हूं वह यह है कि यह पार्सर में एक बग है। ऐसा प्रतीत नहीं होता है कि इस तरह से व्यवहार करना चाहिए। – zdan