डेटा वाले Enums
विकल्पों में मान जोड़ें।
डेटा वाले Enums, CoddyKit पर Rust कोडिंग सीखें का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Rust कोडिंग सीखें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Rust कोडिंग सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
वैरिएंट में डेटा हो सकता है
अब तक हमारे वैरिएंट केवल नाम थे। Rust में वैरिएंट कोष्ठकों के भीतर डेटा भी रख सकता है।
इससे एक ही enum मान के प्रकार और स्वयं मान, दोनों का वर्णन कर सकता है।
enum Message {
Quit,
Move(i32, i32),
Write(String),
}एक मान वाला वैरिएंट
किसी वैरिएंट में डेटा का एक भाग जोड़ने के लिए कोष्ठकों में एक प्रकार रखें।
यहाँ Celsius(f64) का अर्थ है कि Celsius वैरिएंट में f64 संख्या रहती है। मान बनाते समय आप वह संख्या देते हैं।
enum Temperature {
Celsius(f64),
Fahrenheit(f64),
}
fn main() {
let t = Temperature::Celsius(21.5);
println!("Created a temperature");
}कई मानों वाले वैरिएंट
एक वैरिएंट में कॉमा से अलग किए गए कई मान हो सकते हैं।
Move(i32, i32) दो पूर्णांक रखता है, संभवतः x और y निर्देशांक। इसे बनाते समय आप दोनों देते हैं।
enum Shape {
Circle(f64),
Rectangle(f64, f64),
}
fn main() {
let r = Shape::Rectangle(3.0, 4.0);
println!("Made a rectangle");
}match से डेटा निकालना
वैरिएंट के भीतर का डेटा पढ़ने के लिए उसे पैटर्न में नाम दें। वे नाम ऐसे चर बन जाते हैं जिनका उपयोग आप उस शाखा में कर सकते हैं।
यहाँ Shape::Circle(r) संग्रहीत त्रिज्या को r से बाँधता है।
enum Shape {
Circle(f64),
Rectangle(f64, f64),
}
fn main() {
let s = Shape::Circle(2.0);
match s {
Shape::Circle(r) => println!("radius {}", r),
Shape::Rectangle(w, h) => println!("{} x {}", w, h),
}
}बाँधे गए मानों का उपयोग
डेटा को किसी नाम से बाँधने के बाद आप उससे किसी भी चर की तरह गणना कर सकते हैं।
यह प्रोग्राम किसी आकार से मिलान करता है और उसका क्षेत्रफल निकालता है, फिर परिणाम match से लौटाता है।
enum Shape {
Circle(f64),
Rectangle(f64, f64),
}
fn main() {
let s = Shape::Rectangle(3.0, 4.0);
let area = match s {
Shape::Circle(r) => 3.14 * r * r,
Shape::Rectangle(w, h) => w * h,
};
println!("area = {}", area);
}प्रत्येक वैरिएंट के लिए अलग डेटा
प्रत्येक वैरिएंट में अलग प्रकार का डेटा हो सकता है और कुछ में बिल्कुल भी डेटा नहीं हो सकता।
यही लचीलापन enums को इतना अभिव्यंजक बनाता है: एक प्रकार कई अलग-अलग मामलों का मॉडल बनाता है।
enum Message {
Quit,
Move(i32, i32),
Write(String),
}संरचना-जैसे वैरिएंट
एक variant में struct की तरह घुंघराले ब्रेसिज़ के साथ नामित फ़ील्ड हो सकते हैं। इससे हर फ़ील्ड का अर्थ स्पष्ट रहता है।
इसे बनाने के लिए हर फ़ील्ड का नाम लिखें और उसी तरह मिलान करें।
enum Event {
Click { x: i32, y: i32 },
KeyPress(char),
}
fn main() {
let e = Event::Click { x: 10, y: 20 };
match e {
Event::Click { x, y } => println!("click at {},{}", x, y),
Event::KeyPress(c) => println!("key {}", c),
}
}Variants में Strings
Variants में String जैसा स्वामित्व वाला डेटा रखा जा सकता है। मिलान करने पर आपको उस टेक्स्ट तक पहुँच मिलती है।
ध्यान दें: मान के आधार पर मिलान करने से डेटा बाहर move हो जाता है। यहाँ यह ठीक है, क्योंकि हम इसका तुरंत उपयोग करते हैं।
enum Message {
Write(String),
Quit,
}
fn main() {
let m = Message::Write(String::from("hello"));
match m {
Message::Write(text) => println!("text: {}", text),
Message::Quit => println!("bye"),
}
}मानक Option Enum
Rust का अंतर्निहित Option<T> डेटा वाला enum है: Some(T) में कोई मान होता है और None में कुछ नहीं होता।
Rust null का उपयोग किए बिना "शायद कोई मान" दर्शाने के लिए इसका उपयोग करता है। आप इसका मिलान अपने enums की तरह ही करते हैं।
fn main() {
let maybe: Option<i32> = Some(5);
match maybe {
Some(n) => println!("got {}", n),
None => println!("nothing"),
}
}सबको एक साथ जोड़ना
यह पूरा प्रोग्राम temperatures का मॉडल बनाता है और फिर match के अंदर Celsius reading को Fahrenheit में बदलता है।
variant या उसके मान को बदलकर दोबारा चलाने का प्रयास करें।
enum Temperature {
Celsius(f64),
Fahrenheit(f64),
}
fn main() {
let t = Temperature::Celsius(25.0);
let f = match t {
Temperature::Celsius(c) => c * 9.0 / 5.0 + 32.0,
Temperature::Fahrenheit(f) => f,
};
println!("{} F", f);
}डेटा वाले Variants का उपयोग कब करें
जब हर case के साथ स्वाभाविक रूप से अतिरिक्त जानकारी जुड़ी हो, तब डेटा रखने वाले variants का उपयोग करें।
Circleको radius की आवश्यकता होती है।Writemessage को अपना text चाहिए।Moveको coordinates की आवश्यकता होती है।
डेटा को variant के साथ रखने से संबंधित जानकारी एक साथ और type-safe रहती है।
त्वरित जाँच
डेटा रखने वाले enums की अपनी समझ जाँचें।
पुनरावलोकन
आपने सीखा कि enum variants डेटा रख सकते हैं: एक मान, कई मान, struct जैसे नामित फ़ील्ड, या बिल्कुल कुछ नहीं।
आपने Circle(r) जैसे match pattern में उसका नाम देकर उस डेटा को पढ़ना सीखा। मानक Option type भी इसी तरह काम करता है। आगे आप guards और bindings की मदद से matches को और सटीक बनाएँगे।
एआई शिक्षक के साथ Rust सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 39
- पाठ
- 144
अक्सर पूछे जाने वाले प्रश्न
क्या “डेटा वाले Enums” पाठ निःशुल्क है?
हाँ — Rust कोडिंग सीखें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “डेटा वाले Enums” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Rust कोडिंग सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“डेटा वाले Enums” में मैं क्या सीखूँगा?
विकल्पों में मान जोड़ें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Rust कोडिंग सीखें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Rust कोडिंग सीखें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Rust कोडिंग सीखें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“डेटा वाले Enums” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Rust कोडिंग सीखें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Rust कोडिंग सीखें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।