गंज किंवा गंज-लंग बर्यापैकी आधुनिक आणि मुक्त स्त्रोत प्रोग्रामिंग भाषा आहे, एकाधिक प्लॅटफॉर्म असण्याव्यतिरिक्त, वेगवान आणि सी आणि सी ++ पुनर्स्थित करण्यासाठी डिझाइन केलेले.
हे मोझिलाने तयार केले आहे आणि सी # आणि जावा वरून आलेल्यांना देखील कृपया हे आवडेल यासाठी उच्च-स्तरीय अमूर्तता आहे.
आणि एवढेच नाही, आम्ही बर्याच मनोरंजक वैशिष्ट्ये पाहू शकतो जी इतर प्रोग्रामिंग भाषांमध्ये दिसत नाहीतजसे की झिरो कॉस्ट अॅबस्ट्रक्शन, मोशन सेमॅटिक्स, हमी मेमरी सिक्युरिटी, अंमलात आणलेला कमी वेळ इ.
गंज 1.30.0 च्या नवीन आवृत्तीबद्दल
गंज विकसकांनी नवीन आवृत्ती 1.30.0 जाहीर केली आपल्या प्रोग्रामिंग भाषेची.
भाषेची ही नवीन आवृत्ती, नवीन प्रकारचे प्रक्रियात्मक मॅक्रो जोडतात, त्यांची वैधता "वापर" म्हणून परिभाषित करते आणि मॉड्यूल सिस्टम सुधारते.
गुणधर्म आणि फंक्शन-सारखी प्रक्रिया मॅक्रो हे रस्ट 1.30.0 मध्ये नवीनतम जोडले गेले आहेत.
पूर्वीचे सानुकूल डेरिव मॅक्रोसारखेच आहेत, परंतु आपल्याला नवीन आणि सानुकूल विशेषता परिभाषित करण्याची परवानगी द्या विशेषता ऐवजी अतिरिक्त "# [व्युत्पन्न]", आपल्याला आपले स्वतःचे नवीन सानुकूल विशेषता तयार करण्याची परवानगी देत आहे.
तसेच, ते केवळ संरचना आणि एम्ससाठीच नव्हे तर फंक्शन्ससाठी देखील कार्य करतात.
इतर बदल आणि नवकल्पना वर्तमान आवृत्तीची अधिकृत घोषणा तसेच गीथबवरील काही तपशीलवार रीलिझ नोट्स स्पष्ट करतात.
"रस्टअप अपडेट स्थिर" नवीन रस्ट आवृत्ती असू शकते.
इतर दोन प्रगत मॅक्रो प्रकार परिभाषित करण्याची क्षमता जोडून यावर गंज 1.30 विस्तृत होते, "विशेषता-सारखी प्रक्रियात्मक मॅक्रो" आणि "फंक्शन-सारखी प्रक्रियात्मक मॅक्रो".
ते अधिक लवचिक देखील आहेत - व्युत्पन्न करणे केवळ स्ट्रक्चर्स आणि एम्ससाठीच कार्य करते परंतु विशेषता इतरत्र कार्य करू शकतात.
अॅट्रिब्यूट सारख्या मॅक्रो वापरण्याचे उदाहरण म्हणून, वेब अनुप्रयोग फ्रेमवर्क वापरताना आपल्याकडे असे काहीतरी असू शकते.
फंक्शन-सारख्या प्रक्रियात्मक मॅक्रोज फंक्शन कॉलसारखे दिसणारे मॅक्रो परिभाषित करतात. एसक्यूएलच्या बाबतीत, हे असे काहीतरी असू शकते:
let sql = sql! (SELECT * FROM posts WHERE id = 1);
नवीन आवृत्तीच्या घोषणेनुसार उद्गारचिन्हाद्वारे ओळखण्यायोग्य मॅक्रो एम्बेडेड एसक्यूएल स्टेटमेंटचे विश्लेषण करेल आणि सिंटॅक्टिक शुद्धतेची तपासणी करेल. हे याद्वारे परिभाषित केले जाऊ शकते:
# [Proc_macro] pub fn sql (input: TokenStream) -> TokenStream {...}
येथे फंक्शन-सारख्या मॅक्रोने कंसातील मूल्यांचे मूल्यांकन करून आणि व्युत्पन्न करण्यासाठी कोड परत करून डेरिव्ह मॅक्रोचे अनुसरण केले.
त्याच वेळी, वरील टिपण्णी "# [मॅक्रो_यूज]" बाह्य बॉक्स मॅक्रो वापरण्यासाठी वापरले जाते. "वापर" च्या वापराची जागा घेते.
सुधारित मॉड्यूल सिस्टम.
कमी महत्वाचे नाही, विकसकांनी मॉड्यूल सिस्टममध्ये सुधारणा केली किंवा काही अवजड आणि असामान्य वाक्यरचना नियम बदलले.
आतापर्यत, विकसकांनी स्पष्ट "वापर" उपसर्वाविना सबमॉड्यूलवर कार्य हलविताना समस्या उद्भवल्या आहेत.
गंज अलीकडे बाह्य बॉक्स असल्यास आपोआप शोधण्याचा मार्ग तपासतो. तसे असल्यास, मॉड्यूल पदानुक्रमातील सद्य स्थिती विचारात न घेता त्याचा वापर केला जाईल.
गंज "क्रेट" या कीवर्डच्या वापरास देखील अनुकूल करते. उदाहरणार्थ, "क्रेट :: foo :: बार वापरा;" सूचित करते की "बार" फंक्शनकडे जाण्याचा मार्ग चालू निर्देशिकेमधून नव्हे तर बॉक्सच्या मूळ निर्देशिकेतील foo विभागातून प्रारंभ होतो.
हे उदाहरणार्थ, मॉडेल नंबर 1 च्या फंक्शनला मॉड्यूल नंबर 2 च्या फंक्शनच्या बाहेर "वापर" न वापरता कॉल करण्यास अनुमती देते.
लिनक्सवर रस्ट 1.30.0 कसे स्थापित करावे?
ज्यांना त्यांच्या सिस्टमवर रस्ट स्थापित करण्यास आवड आहे त्यांनी आमच्या डिस्ट्रोमध्ये आवश्यक पॅकेज डाउनलोड करावे, यासाठी आम्ही कर्ल वापरणार आहोतः
curl https://sh.rustup.rs -sSf | sh
यासह आम्ही साइटवर प्रवेश करतो आणि स्क्रिप्ट कार्यान्वित करतो.
आमच्या टर्मिनलमध्ये पर्यायांची मालिका उघडली जाईल आणि आम्ही योग्य उत्तर दिले पाहिजे. मुलभूत मूल्यांसह इंस्टॉलेशन सुरू ठेवण्यासाठी आपण 1 दाबा आवश्यक आहे, जे बर्याचसाठी सूचविले जाते.
एकदा काम संपल्यावर आम्ही आपले वर्तमान शेल कॉन्फिगर करू शकतो:
source $HOME/.cargo/env
आणि आम्ही त्याचा वापर सुरू करू शकतो. उदाहरणार्थ, आपण नुकतीच स्थापित केलेली आवृत्ती पाहू इच्छित असल्यास आणि सर्व काही ठीक आहे हे तपासून पहा:
rustc --version
आपण रस्ट स्थापित केलेला असल्यास आणि आपण नवीन आवृत्तीमध्ये अद्यतनित करू इच्छित असल्यास, आपल्याला फक्त असे टाइप करावे लागेल:
rustup update stable