पावरशेल निश्चित रूप से गतिशील भाषाओं की श्रेणी में है, लेकिन क्या इसे दृढ़ता से टाइप किया जाएगा?क्या PowerShell एक दृढ़ता से टाइप की गई भाषा है?
उत्तर
यदि आपको इसकी आवश्यकता हो तो यह हो सकता है।
तो जैसा:
[1] » [int]$x = 5
[2] » $x
5
[3] » $x = 'haha'
Cannot convert value "haha" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:3
+ $x <<<< = 'haha'
[4] »
इंगित करने के लिए यदि आप के बारे में चर दृढ़ता से टाइप किया जा रहा परवाह [प्रकार] अंकन का प्रयोग करें।
संपादित:
edg के रूप में कहे अनुसार, इस व्याख्या से PowerShell को नहीं रोकता है "5" एक पूर्णांक, जब क्रियान्वित करने के रूप में (5 + "5")। मैंने थोड़ा और खोला, और Windows PowerShell in Action में ब्रूस पेटेट के अनुसार, पावरशेल वास्तव में एक "प्रकार-विशिष्ट भाषा" है। तो, मुझे लगता है, मेरा जवाब "तरह का है।"
नहीं। आप एक पूर्णांक में एक स्ट्रिंग जोड़ सकते हैं और एक संख्यात्मक परिणाम प्राप्त कर सकते हैं। यदि आप जोड़ के क्रम को उलट देते हैं तो आपको concatenation मिल जाता है। –
मुझे लगता है कि इससे पता चलता है कि यह * स्थिर रूप से टाइप किया जा सकता है जिसका मतलब यह नहीं है कि यह * दृढ़ता से टाइप किया जाना चाहिए। – EBGreen
तो, यह कमजोर और स्थिर रूप से टाइप किया गया है? –
तकनीकी रूप से यह एक दृढ़ता से टाइप की गई भाषा है।
आप शैल में प्रकार घोषित करने के लिए अस्वीकार कर सकते हैं, जिससे यह गतिशील टाइप की गई स्क्रिप्टिंग भाषा की तरह व्यवहार कर सकता है, लेकिन यह "PsObject" प्रकार के रैपर में कमजोर-टाइप की गई वस्तुओं को लपेट देगा। "न्यू ऑब्जेक्ट" वाक्यविन्यास का उपयोग करके वस्तुओं की घोषणा करके, वस्तुओं को दृढ़ता से टाइप किया जाता है और लपेटा नहीं जाता है।
$compilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters
मैं अपना पिछला उत्तर वापस ले गया - उद्धृत नीचे। मुझे कुछ और अधिक कहा जाना चाहिए था:
पावरशेल में मजबूत प्रकार की अनुमान के साथ एक मजबूत प्रकार की प्रणाली है और गतिशील रूप से टाइप किया गया है।
ऐसा लगता है कि यहां काम पर कई मुद्दे हैं, इसलिए जवाब "दृढ़ता से टाइप की गई भाषा" के अर्थ की बेहतर परिभाषा के लिए पूछने वाले प्रश्न शायद उनके प्रश्न के दृष्टिकोण में अधिक बुद्धिमान थे।
- स्टेटिक बनाम गतिशील प्रकार की जाँच
- मजबूत कमजोर बनाम टाइपिंग:
- सुरक्षित बनाम असुरक्षित
- स्पष्ट बनाम निहित घोषणा और निष्कर्ष
- स्ट्रक्चरल बनाम कर्ताकारक प्रकार सिस्टम टाइपिंग
के बाद से PowerShell कई सीमाओं को पार करने के लिए, जहां PowerShell निहित है इस सवाल का जवाब शायद निम्नलिखित क्षेत्रों से मिलकर वेन आरेख में मौजूद है
"पावरशेल एक दृढ़ता से टाइप की गई भाषा है।
हालांकि, केवल आपको उस प्रकार की घोषणा करने की आवश्यकता है जहां अस्पष्टता है।
यदि यह किसी प्रकार का अनुमान लगाने में सक्षम है, तो आपको इसे निर्दिष्ट करने की आवश्यकता नहीं है।"
मुझे लगता है कि आप आप से क्या मतलब है परिभाषित करने के लिए की आवश्यकता होगी" "दृढ़ता से टाइप:
कंप्यूटर विज्ञान और कंप्यूटर प्रोग्रामिंग में, शब्द मजबूत टाइपिंग उन स्थितियों में, जहां प्रोग्रामिंग वर्णन करने के लिए प्रयोग किया जाता है भाषाएं अलग-अलग डेटाटाइप वाले मानों को शामिल करने के तरीके पर एक या अधिक प्रतिबंध निर्दिष्ट करती हैं। एंटोनिम कमजोर टाइपिंग है। हालांकि, इन शर्तों को कंप्यूटिंग के संक्षिप्त इतिहास पर इस तरह के विभिन्न प्रकार के अर्थ दिए गए हैं कि अक्सर जानना मुश्किल होता है , संदर्भ के बाहर, उनका उपयोग करते समय एक व्यक्तिगत लेखक का क्या अर्थ है।
terminlogy आसपास भ्रम की एक निश्चित राशि है। This article टाइप सिस्टम की उपयोगी वर्गीकरण बताता है। एक चर कार्यावधि में अपने प्रकार बदल सकते हैं -
> $x=100
> $x=dir
कोई प्रकार त्रुटियों:
PowerShell गतिशील, अंतर्निहित टाइप किए हुए है।
> [int]$x = 100
> $x = dir
Cannot convert "scripts-2.5" to "System.Int32".
तो यह भी चर के स्पष्ट टाइपिंग अगर आप चाहते हैं का समर्थन करता है: यह Python, Perl, JavaScript लेकिन अलग C++, Java, C# से, आदि
हालांकि की तरह है। हालांकि, प्रकार की जांच संकलन समय के बजाय रनटाइम पर की जाती है, इसलिए यह स्थिर रूप से टाइप नहीं किया गया है।
मैंने कुछ लोगों को यह कहते हुए देखा है कि पावरशेल प्रकार अनुमान (क्योंकि आपको एक चर के प्रकार की घोषणा करने की आवश्यकता नहीं है) का उपयोग करता है, लेकिन मुझे लगता है कि यह गलत शब्द है। टाइप अनुमान प्रणाली की एक विशेषता है जो संकलन समय पर टाइप-चेकिंग करता है (जैसे सी # में "var
")। पावरशेल केवल रनटाइम पर प्रकारों की जांच करता है, इसलिए यह अनुमान लगाने के बजाय वास्तविक मान की जांच कर सकता है।
> [int]$a = 1
> [string]$b = $a
> $b
1
> $b.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
तो कुछ प्रकार मक्खी पर बदल रहे हैं:
हालांकि, वहाँ स्वचालित प्रकार-रूपांतरण हो रहा से कुछ राशि है। अधिकांश परिभाषाओं से यह PowerShell को कमजोर टाइप किया गया भाषा बना देगा। यह निश्चित रूप से उदास से अधिक कमजोर है पायथन जो (लगभग?) फ्लाई पर प्रकारों को कभी भी परिवर्तित नहीं करता है। लेकिन शायद पर्ल के रूप में कमजोर नहीं है जो आवश्यकतानुसार लगभग कुछ भी परिवर्तित करेगा।
यह उल्लेखनीय है कि * गतिशील टाइप * पावरशेल जैसी भाषाओं को आम तौर पर खराब त्रुटि संदेश और अधिक रन-टाइम मौत बनाम कुछ * स्थिर रूप से टाइप किया गया * जावा की तरह मिलता है। हालांकि, यहां तक कि * स्थिर टाइपिंग * के साथ आप शून्य सूचक अपवादों के साथ रन-टाइम मौत भी प्राप्त कर सकते हैं और इस तरह, आपको * स्थिर टाइप किए गए * भाषाओं के साथ बेहतर त्रुटि संदेश और डिबगिंग मिलती है। –
मुझे लगता है कि एक इंट उदाहरण के लिए एक स्ट्रिंग जोड़ने पर विचार करना चर्चा मिल के लिए और अधिक ग्रिस्ट प्रदान करेगा। गतिशील प्रकार कास्टिंग माना जाता है? टिप्पणियों में से एक में किसी ने कहा कि इस मामले में:
4 + "4"
"4" कोई Int32 हो जाता है। मुझे विश्वास नहीं है कि यह मामला बिल्कुल है।मेरा मानना है कि बजाय कि एक मध्यवर्ती कदम होता है जहां आदेश करने के लिए बदल जाता है:
4 + [System.Convert] :: ToInt32 ("4")
नोट इसका मतलब है कि कि "4" के माध्यम से एक स्ट्रिंग रहता है पूरी प्रक्रिया। इसे प्रदर्शित करने के लिए, इस उदाहरण पर विचार करें:
19# $foo = "4"
20# $foo.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
21# 4 + $foo
8
22# $foo.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
अच्छा बिंदु - धन्यवाद! –
हालांकि आप असाइनमेंट के माध्यम से एक चर के प्रकार को बदल सकते हैं। यदि आप $ foo = "4" और फिर $ foo = 8 + $ foo करते हैं, तो $ foo का प्रकार स्ट्रिंग से int में बदल जाएगा। मूल्य अपरिवर्तनीय हैं, यद्यपि। – JacquesB
पावरशेल गतिशील रूप से टाइप, सादा और सरल है। इसे अपने निर्माता, ब्रूस पेटेट द्वारा वर्णित किया गया है।
इसके अतिरिक्त, यदि किसी ने मूल प्रोग्रामिंग भाषा सिद्धांत वर्ग लिया है तो वे इसे जान लेंगे। सिर्फ इसलिए कि एक प्रकार की एनोटेशन प्रणाली है इसका मतलब यह नहीं है कि यह दृढ़ता से टाइप किया गया है। यहां तक कि प्रकार के एनोटेटेड वैरिएबल एक कलाकार के दौरान गतिशील रूप से व्यवहार करते हैं। कोई भी भाषा जो आपको एक चर को स्ट्रिंग असाइन करने और इसे प्रिंट करने की अनुमति देती है और उसके बाद एक ही चर को एक संख्या असाइन करती है और इसके साथ गणना गतिशील रूप से टाइप की जाती है।
साथ ही, PowerShell गतिशील दायरे वाला (यदि यहां किसी को क्या है कि इसका मतलब है)।
- 1. जो दृढ़ता से टाइप की गई भाषा है: पायथन या प्रोलॉग?
- 2. गतिशील रूप से टाइप की गई भाषा के साथ रिफैक्टरिंग
- 3. सी # गतिशील रूप से टाइप की गई भाषा
- 4. एक प्रोग्रामिंग भाषा कैसे सांख्यिकीय रूप से टाइप की गई और गतिशील रूप से टाइप की जा सकती है?
- 5. मजबूत टाइप की गई क्लाइंट साइड भाषाएं?
- 6. क्या पाइथन एक कमजोर टाइप की गई भाषा है क्योंकि वेरिएबल प्रकार स्विच कर सकते हैं?
- 7. कमजोर टाइप की गई भाषा के लाभ (और दोष) क्या हैं?
- 8. कार्यों की एक टाइप की गई सरणी
- 9. क्या डैपर एक संग्रहीत प्रक्रिया के साथ दृढ़ता से टाइप की गई वस्तुओं का समर्थन करता है?
- 10. क्या कोई दृढ़ता से टाइप की गई प्रोग्रामिंग भाषा है जो आपको नए ऑपरेटरों को परिभाषित करने की अनुमति देती है?
- 11. PHP की तरह कमजोर टाइप की गई भाषा में इंटरफेस का बिंदु क्या है?
- 12. क्या दृढ़ता से टाइप किया गया है Asp.Net MVC
- 13. जावा। प्रोपर्टीज फाइलें दृढ़ता से टाइप की गई कक्षाओं के रूप में
- 14. क्या "टाइप-सेफ" और "दृढ़ता से टाइप किया गया" एक ही चीज़ का मतलब है?
- 15. मैं दृढ़ता से टाइप की गई कक्षा में namevaluecollection को स्वचालित कैसे करूं?
- 16. टाइप की गई कमांड लाइन
- 17. Breeze.js टाइप की गई इकाइयां
- 18. एक तेज, कॉम्पैक्ट, स्ट्रीम करने योग्य, बहु भाषा, दृढ़ता से टाइप किए गए क्रमबद्धता प्रारूप
- 19. निर्भर रूप से टाइप की गई भाषा "असली दुनिया" प्रोग्रामिंग के लिए सबसे उपयुक्त है?
- 20. एनएचबीर्नेट के साथ दृढ़ता से टाइप की गई ऑब्जेक्ट प्रॉपर्टी में एक्सएमएल टाइप कॉलम को कैसे मैप करें?
- 21. दृढ़ता से टाइप किए गए एमवीसी
- 22. रूबी की विधि_मissing जैसी कुछ चीज़ों से स्थिर रूप से टाइप की गई भाषा को रोकता है?
- 23. जावास्क्रिप्ट संकलित या एक व्याख्या की गई भाषा है?
- 24. दृढ़ता से टाइप किए गए डेटासेट क्या हैं?
- 25. टाइपपीफ को दृढ़ता से टाइप क्यों नहीं किया जाता है?
- 26. .Net/C# में, निरंतर दृढ़ता से टाइप किया गया है?
- 27. एक बतख-टाइप की गई भाषा में स्थैतिक-टाइपिंग के पहलुओं को सिम्युलेट करना
- 28. डी में गतिशील टाइपिंग का उपयोग करना, एक स्थिर टाइप की गई भाषा
- 29. रूबी एक स्क्रिप्टिंग भाषा या एक व्याख्या की गई भाषा है?
- 30. क्या एक कस्टम एएसपी.नेट एमवीसी दृढ़ता से टाइप किया गया HTML सहायक है?
शब्द "दृढ़ता से टाइप किया गया" परिभाषित नहीं किया गया है। क्या आप इसे परिभाषित कर सकते हैं, ताकि आपके प्रश्न का उत्तरदायी उत्तर दिया जा सके? अन्यथा हर कोई सिर्फ अपनी * परिभाषा को प्रतिस्थापित करेगा और हम बड़े पैमाने पर ज्वालामुखी में खत्म हो जाएंगे। –
आपका मतलब है: PowerShell * स्थिर रूप से * टाइप किया गया है? –