Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

रूबी 3.4 रिलीज हाइलाइट्स:मुख्य विशेषताएं और अपडेट

<पी> रूबी परंपरा के अनुसार, कोर टीम ने 25 दिसंबर, 2024 को रूबी 3.4 जारी किया! यदि आप हमारी तरह रूबी से प्यार करते हैं, तो आप शायद सोच रहे होंगे कि रूबी 3.4 में नया क्या है। इस रिलीज़ में कोई बड़ा बदलाव नहीं है, लेकिन आप कुछ बहुत अच्छी चीज़ों से अवगत होना चाहेंगे।

<पी> रूबी 3.4 रिलीज हाइलाइट्स:मुख्य विशेषताएं और अपडेट

<पी> आइए पहले कुछ भाषा परिवर्तनों पर गौर करें।

भाषा परिवर्तन

<पी> अधिकांश रूबी डेवलपर्स के लिए भाषा परिवर्तन सबसे तत्काल प्रासंगिक परिवर्तन हैं। आइए उनमें से प्रत्येक पर एक नज़र डालें!

जमे हुए स्ट्रिंग शाब्दिक

<पी> यदि आपने थोड़ी देर के लिए भी रूबी लिखी है, तो संभवतः आपने एक फ़ाइल देखी होगी जो इससे शुरू होती है:

# frozen_string_literal: true
<पी> उपरोक्त उदाहरण एकजादुई टिप्पणीहै , और इसका वास्तव में रूबी दुभाषिया के लिए अर्थ है! यह टिप्पणी दुभाषिया को इस फ़ाइल में प्रत्येक स्ट्रिंग को ऐसे मानने के लिए कहती है जैसे कि उसमें freeze हो इस पर बुलाया. यदि आप इस जादुई टिप्पणी के साथ किसी फ़ाइल में स्ट्रिंग को संशोधित करने का प्रयास करते हैं, तो आपको एक रनटाइम त्रुटि मिलेगी।

<पी> रूबी 3.4 में, स्ट्रिंग्स कार्य करेंगी मानो वे डिफ़ॉल्ट रूप से जमे हुए हों। उन्हें परिवर्तित करने के प्रयास के परिणामस्वरूप त्रुटि के बजाय बहिष्करण चेतावनी प्राप्त होगी। यदि आप उन्हें बदलने का प्रयास करते हैं तो रूबी का भविष्य का संस्करण एक अपवाद बढ़ाकर डिफ़ॉल्ट जमे हुए स्ट्रिंग अक्षर को लागू करेगा। यह संक्रमणकालीन अवधि रूबी डेवलपर्स को अपने ऐप्स माइग्रेट करने का समय देगी।

डिफ़ॉल्ट ब्लॉक पैरामीटर

<पी> रूबी 3.4 शॉर्ट कोड ब्लॉक को साफ-सुथरा बनाने के लिए एक डिफ़ॉल्ट ब्लॉक पैरामीटर पेश करता है।

<पी> रूबी 2.7 से पहले, किसी सरणी के प्रत्येक तत्व को each के साथ प्रिंट करना विधि कुछ इस तरह दिखी:

[1, 2, 3].each { |item| puts item }
<पी> रूबी 2.7 ने नाम देने की आवश्यकता को हटाने के लिए क्रमांकित पैरामीटर पेश किए। रूबी 2.7 के बाद, आप वही कोड लिख सकते हैं:

[1, 2, 3].each { puts _1 }
<पी> रूबी 2.7 का सुधार अधिक सीधा है लेकिन बिल्कुल स्पष्ट नहीं है। यदि आप इस रूबी सिंटैक्स से अपरिचित हैं, तो आपको यह समझने में कठिनाई हो सकती है कि यहाँ क्या हो रहा है। रूबी 3.4 इसी कार्य को करने का और भी बेहतर तरीका प्रस्तुत कर रहा है:

[1, 2, 3].each { puts it }

कीवर्ड स्पैटिंग nil

<पी> 3.4 से पहले के रूबी संस्करणों में, डबल स्प्लैट ऑपरेटर (**) का उपयोग किया जाता था ) nil के साथ एक TypeError उठाया . इस प्रकार का अर्थ समझ में आया क्योंकि nil परोक्ष रूप से हैश में परिवर्तित नहीं किया जा सका।

<पी> रूबी 3.4 इसमें एक सरल परिवर्तन प्रदान करता है - यह अंतर्निहित रूप से nil को रूपांतरित करता है एक हैश में. ** पर कॉल किया जा रहा है शून्य पर यह ** पर कॉल करने जैसा होगा खाली पर हैश.

कोर क्लास अपडेट

<पी> भाषा बदलने के कारण कोर क्लास अपडेट रूबी डेवलपर्स के लिए तुरंत प्रासंगिक नहीं हैं, लेकिन वे निश्चित रूप से समझने लायक हैं!

अपवाद#सेट_बैकट्रेस

<पी> रूबी इश्यू ट्रैकर पर एक फीचर अनुरोध में रूबी 3.4 में इस बदलाव से पहले स्ट्रिंग्स की एक सरणी के साथ बैकट्रेस को "हानिपूर्ण" के रूप में सेट करने का वर्णन किया गया है। अपवाद पहले #backtrace_locations पर शून्य लौटा था .

<पी> रूबी 3.4 में, Exception#set_backtrace Thread::Backtrace::Location स्वीकार करेगा सारणी ताकि आप Backtrace का पुनर्निर्माण कर सकें  उदाहरण और पूरी तरह से कार्यशील अपवाद है।

रेंज#आकार

<पी> Range#size रूबी 3.4 में भी नया व्यवहार है। यदि वह सीमा size है जिस पर कॉल किया जा रहा है वह पुनरावर्तनीय नहीं है, रूबी अब TypeError फेंकेगी . यह व्यवहार में एक छोटा सा बदलाव है जिसे आप केवल तभी नोटिस करेंगे जब आप size पर कॉल कर रहे हों श्रेणियों के एक छोटे उपसमूह पर।

रूबी 3.4 में अन्य परिवर्तन नए

<पी> रूबी 3.4 में एक और छोटा बदलाव उन तरीकों के लिए है जो उस ब्लॉक में चले जाते हैं जिसका वे उपयोग नहीं करते हैं। वर्बोज़ मोड में चलते समय, यदि आप ब्लॉक को किसी ऐसे तरीके से पास करते हैं जो ब्लॉक का उपयोग नहीं करता है तो रूबी अब एक चेतावनी देगी।

<पी> आपको यह सुनकर भी खुशी हो सकती है कि रूबी 3.4 Array.each के प्रदर्शन में सुधार करता है कार्यान्वयन पुनर्लेखन के कारण!

<पी> अंत में, एक और अद्यतन यह है कि त्रुटि संदेश और बैकट्रेस कैसे प्रदर्शित किए जाते हैं। रूबी अब प्रासंगिक होने पर बैकटिक्स के बजाय सिंगल कोट्स का उपयोग करेगी और विधि नाम से पहले एक क्लास नाम प्रदर्शित करेगी।

रूबी 3.4 में अपग्रेड करना

<पी> रूबी 3.4 में अपग्रेड करना अधिकांश लोगों के लिए कोई बड़ी उपलब्धि नहीं होनी चाहिए। सबसे अधिक श्रम-गहन हिस्सा उन सभी अनावश्यक जमे हुए स्ट्रिंग जादुई टिप्पणियों को हटाना होगा! रूबी 3.4 में जो कुछ भी नया है उसका लाभ उठाने के लिए अपग्रेड करने में समय लगाने से लाभ मिलेगा, इसलिए देर न करें!

<पी> और मत भूलिए—अपने इनबॉक्स में अधिक रूबी समाचार और यहां तक कि इस जैसे ट्यूटोरियल प्राप्त करने के लिए, हनीबेजर न्यूज़लेटर के लिए साइन अप करें!


  1. कॉलबैक फ़ंक्शन के लिए पैरामीटर पास करना जावास्क्रिप्ट कॉलबैक फ़ंक्शन के लिए पैरामीटर पास करना जावास्क्रिप्ट

    जावास्क्रिप्ट में कॉलबैक फ़ंक्शन के लिए पैरामीटर पास करने के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result{ फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; रंग:नीला बैंगनी; }कॉलबैक फ़ंक्शन के लिए पैरामीटर पास करनायहां क्लिक करें कॉलबैक फ़

  1. सी ++ प्रोग्राम आसन्न मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए सी ++ प्रोग्राम आसन्न मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए

    एक ग्राफ का आसन्न मैट्रिक्स आकार V x V का एक वर्ग मैट्रिक्स है। V, ग्राफ G के शीर्षों की संख्या है। इस मैट्रिक्स में प्रत्येक पक्ष में V कोने चिह्नित हैं। यदि ग्राफ़ में i से j कोने तक कुछ किनारे हैं, तो ith पर आसन्न मैट्रिक्स में पंक्ति और जम्मूवें कॉलम में यह 1 (या भारित ग्राफ़ के लिए कुछ गैर-शून्

  1. Matplotlib अक्ष में सापेक्ष बदलाव कैसे निकालें? Matplotlib अक्ष में सापेक्ष बदलाव कैसे निकालें?

    Matplotlib अक्ष में सापेक्ष बदलाव को दूर करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - दो इनपुट सूचियों के साथ एक लाइन प्लॉट करें। gca() . का उपयोग करना विधि, वर्तमान अक्ष प्राप्त करें और फिर एक्स-अक्ष उदाहरण वापस करें। प्रमुख टिकर का फॉर्मेटर प्राप्त करें। सापेक्ष बदलाव को हटाने के लिए, set