मुख्य सामग्री पर जाएं
मॉड्यूल 1 · पाठ 2 का 2पाठ्यक्रम में 2/14~10 min
मॉड्यूल पाठ (2/2)

आदिम प्रकार

रस्ट एक सांख्यिकीय रूप से टाइप की गई भाषा है, जिसका अर्थ है कि इसे संकलन समय पर सभी चर के प्रकार का पता होना चाहिए। आमतौर पर, कंपाइलर निर्दिष्ट मान के आधार पर प्रकार का अनुमान लगा सकता है, लेकिन कभी-कभी इसे मैन्युअल रूप से निर्दिष्ट करना आवश्यक या सहायक होता है।

रस्ट में आदिम प्रकारों को दो मुख्य श्रेणियों में विभाजित किया गया है: स्केलर (एकल मान) और यौगिक (मानों का समूह)।

अदिश प्रकार

अदिश प्रकार एकल मान का प्रतिनिधित्व करते हैं। जंग में चार मौलिक अदिश प्रकार होते हैं:

  1. पूर्णांक: पूर्ण संख्याएँ। उन पर हस्ताक्षर किए जा सकते हैं (i8, i16, i32, i64, i128, isize) या अहस्ताक्षरित (u8, u16, u32, u64, u128, usize)। डिफ़ॉल्ट प्रकार i32 है।
  2. फ़्लोटिंग-पॉइंट: दशमलव बिंदुओं वाली संख्याएँ। वे f32 या f64 (डबल प्रिसिजन, डिफ़ॉल्ट) हो सकते हैं।
  3. बूलियन्स: true या false (प्रकार bool) के साथ तार्किक सत्य का प्रतिनिधित्व करें।
  4. अक्षर: सिंगल कोट्स में संलग्न एक यूनिकोड स्केलर मान (प्रकार char), उदाहरण के लिए, 'a', 'ℤ', या इमोजी '😻'।

स्पष्ट प्रकार के एनोटेशन का उदाहरण:

Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

यौगिक प्रकार

यौगिक प्रकार एकाधिक मानों को एक ही प्रकार में समूहित कर सकते हैं। जंग के दो मुख्य आदिम यौगिक प्रकार हैं:

टुपल्स

एक टुपल विभिन्न प्रकार के मानों को एक निश्चित आकार के संग्रह में समूहित करता है:

Rust
let person: (String, i32) = (String::from("Alice"), 30);

// Destructuring to extract values
let (name, age) = person;

// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;

सारणियाँ (निश्चित आकार सूचियाँ)

एक सरणी समान प्रकार के कई तत्वों को स्टैक पर संग्रहीत एक निश्चित आकार के संग्रह में समूहित करती है:

Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];

यदि आप सरणी सीमाओं (उदाहरण के लिए, numbers[10]) के बाहर किसी इंडेक्स तक पहुंचने का प्रयास करते हैं, तो अनधिकृत मेमोरी एक्सेस की अनुमति देने के बजाय रस्ट रनटाइम पर तुरंत क्रैश (घबराहट) करेगा।

तुलना

फ़ीचरटपलसारणी
तत्व प्रकारभिन्न हो सकते हैंवैसा ही होना चाहिए
आकारनिश्चितनिश्चित
पहुंचबिंदु के माध्यम से सूचकांक (जैसे, .0)वर्गाकार कोष्ठक (जैसे, [0])

खुद कोशिश करना

व्यायाम#rust.m1.l2.e1
प्रयास: 0लोड हो रहा है...

आयु 30 (पूर्णांक) और स्कोर 95.5 (फ्लोट) वाले आँकड़े नामक टुपल घोषित करें। इसके बाद, टुपल के इंडेक्स का उपयोग करके सीधे उसके दूसरे तत्व तक पहुंच कर स्कोर को स्क्रीन पर प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

`let stats = (30, 95.5);` के साथ टपल बनाएं। `println!` मैक्रो के अंदर `stats.1` का उपयोग करके दूसरे तत्व तक पहुंचें।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#rust.m1.l2.e2
प्रयास: 0लोड हो रहा है...

1 से 5 तक पूर्णांक मानों वाले संख्याओं के नाम से एक सरणी घोषित करें। println! का उपयोग करके सरणी के तीसरे तत्व (सूचकांक 2) को स्क्रीन पर प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

सरणी को `let number = [1, 2, 3, 4, 5];` के साथ घोषित करें और तीसरे तत्व को `[2]` के साथ अनुक्रमित करके एक्सेस करें।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#rust.m1.l2.e3
प्रयास: 0लोड हो रहा है...

टपल `लेट पॉइंट = (10, 20);` को देखते हुए, मानों को `x` और `y` नामक दो वेरिएबल्स में निकालने के लिए डिस्ट्रक्चरिंग का उपयोग करें। फिर, `x` और `y` का योग प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

टपल को नष्ट करने के लिए सिंटैक्स `let (x, y) = पॉइंट;` का उपयोग करें और फिर `println!` में वेरिएबल्स का योग करें।

3 प्रयासों के बाद समाधान उपलब्ध है