Rust प्रोग्रामिंग का प्रयास करें

Home PDF

Rust पिछले कुछ सालों में काफी लोकप्रिय हो चुका एक प्रोग्रामिंग भाषा है। 2006 में, Mozilla के एक कर्मचारी ने एक व्यक्तिगत प्रोजेक्ट शुरू किया, जिसे बाद में कंपनी का समर्थन मिला और 2010 में इस प्रोजेक्ट को जारी किया गया। इस प्रोजेक्ट का नाम Rust रखा गया।

अगला कदम, Rust का पहला प्रोग्राम चलाना है। आधिकारिक वेबसाइट खोलें और देखें कि प्रोग्राम को कैसे चलाया जाता है।

आधिकारिक वेबसाइट ने एक स्क्रिप्ट प्रदान की है:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

(यह कोड ब्लॉक है और इसे अनुवादित नहीं किया जाना चाहिए।)

Mac पर भी Mac सिस्टम के पैकेज मैनेजमेंट टूल Homebrew का उपयोग करके इंस्टॉल किया जा सकता है। निम्नलिखित कमांड चलाएं:

brew install rust

मैं यहाँ Rust को इंस्टॉल करने के लिए Homebrew का उपयोग कर रहा हूँ। इंस्टॉल होने के समय, हम आधिकारिक वेबसाइट को देखते रहें।

अगले हम देखते हैं कि आधिकारिक वेबसाइट पर Cargo नामक एक चीज़ दिखाई देती है, जो Rust का बिल्ड टूल और पैकेज मैनेजमेंट टूल है।

आधिकारिक वेबसाइट पर कहा गया है:

हमें बताएं कि Cargo प्रोग्राम को कैसे बनाएं, चलाएं और परीक्षण करें।

चलाएं:

brew install rust

(नोट: यह कमांड macOS पर Rust प्रोग्रामिंग लैंग्वेज को इंस्टॉल करने के लिए Homebrew का उपयोग करती है। इसे हिंदी में अनुवादित करने की आवश्यकता नहीं है क्योंकि यह एक टर्मिनल कमांड है और इसे वैसे ही रहना चाहिए।)

आउटपुट:

==> डाउनलोड हो रहा है https://homebrew.bintray.com/bottles/rust-1.49.0_1.big_sur.bottle.tar.gz
==> डाउनलोड हो रहा है https://d29vzk4ow07wi7.cloudfront.net/5a238d58c3fa775fed4e12ad74109deff54a82a06cb6a3a4f51b5d37587fb319?response-content-disposition=a
######################################################################## 100.0%
==> रस्ट-1.49.0_1.big_sur.bottle.tar.gz डाला जा रहा है
==> सावधानियाँ
बैश पूर्णता स्थापित की गई है:
  /usr/local/etc/bash_completion.d
==> सारांश
🍺  /usr/local/Cellar/rust/1.49.0_1: 15,736 फ़ाइलें, 606.2MB

यह सफलतापूर्वक स्थापित हो गया है।

जब टर्मिनल में cargo चलाया जाता है, तो आउटपुट निम्नलिखित होता है:

रस्ट का पैकेज मैनेजर

उपयोग: cargo [विकल्प] [उपकमांड]

OPTIONS: -V, –version संस्करण जानकारी प्रिंट करें और बाहर निकलें –list इंस्टॉल किए गए कमांड्स की सूची दिखाएं –explain `rustc --explain CODE` चलाएं -v, --verbose विस्तृत आउटपुट का उपयोग करें (-vv बहुत विस्तृत/build.rs आउटपुट) -q, --quiet stdout पर कोई आउटपुट प्रिंट न करें --color रंग: auto, always, never --frozen Cargo.lock और कैश को अप-टू-डेट होने की आवश्यकता है --locked Cargo.lock को अप-टू-डेट होने की आवश्यकता है --offline नेटवर्क तक पहुंच के बिना चलाएं -Z ... Cargo के लिए अस्थिर (नाइटली-ओनली) फ्लैग्स, विवरण के लिए 'cargo -Z help' देखें -h, --help मदद जानकारी प्रिंट करें

कुछ सामान्य कार्गो कमांड्स हैं (सभी कमांड्स देखने के लिए –list का उपयोग करें): build, b वर्तमान पैकेज को कंपाइल करें check, c वर्तमान पैकेज का विश्लेषण करें और त्रुटियों की रिपोर्ट करें, लेकिन ऑब्जेक्ट फाइलें न बनाएं clean टार्गेट डायरेक्टरी को हटाएं doc इस पैकेज और इसके डिपेंडेंसीज़ की डॉक्यूमेंटेशन बनाएं new एक नया कार्गो पैकेज बनाएं init मौजूदा डायरेक्टरी में एक नया कार्गो पैकेज बनाएं run, r लोकल पैकेज का बाइनरी या उदाहरण चलाएं test, t टेस्ट चलाएं bench बेंचमार्क चलाएं update Cargo.lock में सूचीबद्ध डिपेंडेंसीज़ को अपडेट करें search रजिस्ट्री में क्रेट्स खोजें publish इस पैकेज को पैकेज करें और रजिस्ट्री में अपलोड करें install एक Rust बाइनरी इंस्टॉल करें। डिफ़ॉल्ट लोकेशन $HOME/.cargo/bin है uninstall एक Rust बाइनरी को अनइंस्टॉल करें

किसी विशिष्ट कमांड के बारे में अधिक जानकारी के लिए ‘cargo help ’ देखें।


सभी कमांड को समझने की जरूरत नहीं है। बस सामान्य रूप से उपयोग होने वाले कमांड को जानना जरूरी है। `build` और `run` कमांड बहुत महत्वपूर्ण हैं।

अधिकारिक दस्तावेज़ देखना जारी रखें:

```c
आइए अपने नए Rust डेवलपमेंट एनवायरनमेंट के साथ एक छोटा सा एप्लिकेशन लिखें। शुरुआत करने के लिए, हम Cargo का उपयोग करके एक नया प्रोजेक्ट बनाएंगे। अपने पसंदीदा टर्मिनल में निम्नलिखित कमांड चलाएं:
cargo new hello-rust

यह hello-rust नामक एक नया डायरेक्टरी जनरेट करेगा, जिसमें निम्नलिखित फाइलें होंगी:

hello-rust |- Cargo.toml |- src |- main.rs Cargo.toml रस्ट के लिए मेनिफेस्ट फ़ाइल है। यह वह जगह है जहां आप अपने प्रोजेक्ट के लिए मेटाडेटा और डिपेंडेंसीज़ रखते हैं।

src/main.rs वह जगह है जहाँ हम अपना एप्लिकेशन कोड लिखेंगे।

यह बताता है कि प्रोजेक्ट कैसे बनाया जाए। अगला कदम इसे बनाना है।
$ cargo new hello-rust

बाइनरी (एप्लिकेशन) hello-rust पैकेज बनाया गया


हम VSCode का उपयोग करके प्रोजेक्ट को खोलते हैं।

main.rs: (यह एक Rust प्रोग्रामिंग भाषा की फ़ाइल है, जिसे अनुवादित नहीं किया जाता है।)

```rust
fn main() {
    println!("Hello, world!");
}

(यह कोड Rust प्रोग्रामिंग भाषा में लिखा गया है और इसमें “Hello, world!” प्रिंट करने का काम किया जाता है। इसे हिंदी में अनुवाद करने की आवश्यकता नहीं है क्योंकि यह एक प्रोग्रामिंग कोड है।)

अगला, स्वाभाविक रूप से प्रोग्राम को बिल्ड और रन करने के बारे में सोचना चाहिए।

$ cargo build

त्रुटि: /Users/lzw/ideas/curious-courses/program/run/rust या किसी भी पैरेंट डायरेक्टरी में Cargo.toml नहीं मिला


गलती हो गई। क्यों? यह दर्शाता है कि cargo केवल प्रोजेक्ट के अंदर के डायरेक्टरी में चल सकता है। इसके बाद, हमने सब-डायरेक्टरी में प्रवेश किया और `cd hello-rust` चलाया।

इस समय, यदि सीधे चलाया जाए, तो क्या होगा।

```shell
$ cargo run
   
   Compiling hello-rust v0.1.0 (/Users/lzw/ideas/curious-courses/program/run/rust/hello-rust)
    Finished dev [unoptimized + debuginfo] target(s) in 4.43s
     Running `target/debug/hello-rust`
Hello, world!

(नोट: कोड ब्लॉक को अनुवादित नहीं किया जाता है क्योंकि इसमें कोड और कमांड शामिल हैं जो भाषा-अज्ञेय हैं।)

ठीक है, सफल हो गया। स्ट्रिंग आउटपुट हुआ, और प्रोग्राम काम करने लगा है।

प्रोग्राम में बदलाव करने का प्रयास करें।

fn main() {
    println!(2+3);
}

यह कोड Rust प्रोग्रामिंग भाषा में लिखा गया है। इसमें main फ़ंक्शन है जो प्रोग्राम का एंट्री पॉइंट है। println! मैक्रो का उपयोग करके 2+3 का योग प्रिंट किया जा रहा है। हालांकि, यह कोड सही नहीं है क्योंकि println! मैक्रो को स्ट्रिंग फॉर्मेट की आवश्यकता होती है। सही कोड इस प्रकार होगा:

fn main() {
    println!("{}", 2 + 3);
}

इस कोड में, {} एक प्लेसहोल्डर है जो 2 + 3 के मान को प्रिंट करेगा।

cargo run के बाद, यह दिखाई दिया:

   Compiling hello-rust v0.1.0 (/Users/lzw/ideas/curious-courses/program/run/rust/hello-rust)
त्रुटि: फॉर्मेट आर्ग्यूमेंट एक स्ट्रिंग लिटरल होना चाहिए
 --> src/main.rs:2:14
  |
2 |     println!(2+3);
  |              ^^^
  |
सहायता: हो सकता है कि आप फॉर्मेट करने के लिए एक स्ट्रिंग लिटरल भूल गए हों
  |
2 |     println!("{}", 2+3);
  |              ^^^^^

त्रुटि: पिछली त्रुटि के कारण प्रक्रिया रद्द की जा रही है

त्रुटि: hello-rust को संकलित नहीं किया जा सका

अधिक जानने के लिए, कमांड को --verbose के साथ फिर से चलाएं।


अभी तक किसी भी Rust सिंटैक्स को नहीं सीखा है। हमारी अंतर्ज्ञान के आधार पर कोड में बदलाव करने से गलती हो गई। यह त्रुटि संदेश बहुत अच्छा है, क्योंकि यह हमें बता रहा है कि इसे कैसे ठीक किया जाए।

```rust
fn main() {
    println!("{}", 2+3);
}

यह कोड Rust प्रोग्रामिंग भाषा में लिखा गया है। यह एक साधारण प्रोग्राम है जो 2 + 3 का योग करता है और परिणाम को प्रिंट करता है। println! मैक्रो का उपयोग करके आउटपुट को कंसोल पर प्रदर्शित किया जाता है।

इस बार सही कर दिया, और वास्तव में 5 आउटपुट हुआ।

बिल्ड (build) क्या होगा?

$ cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s

क्यों build की आवश्यकता होती है? क्योंकि हो सकता है कि हम केवल एक executable प्रोग्राम जनरेट करना चाहते हों, लेकिन उसे चलाना नहीं चाहते। कुछ बड़े प्रोग्राम के लिए, उन्हें चलाना समय लेने वाला हो सकता है। हो सकता है कि हम उसे लोकल पर जनरेट करना चाहते हों और फिर उसे रिमोट सर्वर पर ट्रांसफर करके वहां चलाना चाहते हों।

हमने Rust प्रोग्राम को चला दिया है। अब हमें Rust भाषा के और अधिक सिंटैक्स से परिचित होना है, ताकि हम “कंप्यूटर साइंस के रहस्यों को सुलझाने” में बताए गए चर (variables), फ़ंक्शन (functions), फ़ंक्शन कॉल (function calls), और एक्सप्रेशन (expressions) जैसी अवधारणाओं के लिए Rust में संबंधित प्रतीकों को पहचान सकें।


छोटा अभ्यास


Back 2025.01.18 Donate