2012-08-30 9 views
6

मैं बुनियादी range operator से परिचित हूँ:पावरशेल में इलिप्सिस क्या करता है?

.. Range operator 
Represents the sequential integers in an integer array, given an upper and lower boundary. 
    1..10 
    10..1 
    foreach ($a in 1..$max) {write-host $a} 

हालांकि, मैं गलती से एक दीर्घवृत्त (...) के बजाय एक सीमा ऑपरेटर (..) आज इस्तेमाल किया, और देखा कि यह किसी कारण से 0 करने के लिए नीचे एन से प्रगणित :

PS C:\> 5...3 
5 
4 
3 
2 
1 
0 

क्या चल रहा है?

उत्तर

12

रेंज ऑपरेटर का अभी भी उपयोग किया जा रहा है - जैसा कि यह पता चला है, दूसरे इनपुट (इस मामले में, .3) रेंज ऑपरेटर को पूरी तरह से एक पूर्णांक में डाला जा रहा है, क्योंकि रेंज ऑपरेटर केवल इंटीजर को इनपुट के रूप में स्वीकार करता है।

यह एक दाईं ओर .5 की तुलना में अधिक मूल्य का उपयोग करके सत्यापित किया जा सकता:

PS C:\> 5...6 
5 
4 
3 
2 
1 

यह बहुत आसान है जब आप सीमा के लिए दाईं ओर मान के रूप में स्पष्ट रूप से गैर पूर्णांक मान का उपयोग को देखने के लिए ऑपरेटर:

PS C:\> 5..'3' 
5 
4 
3 
+0

अच्छा जवाब :) शक्तियां आश्चर्यचकित रहती हैं, आह? ;) – manojlds