Swift Academy · पाठ

CustomStringConvertible

अपने प्रकारों के लिए पठनीय विवरण परिभाषित कीजिए।

पाठ 1, कुल 4 में से13 चरण

CustomStringConvertible, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

CustomStringConvertible क्या है?

यह प्रोटोकॉल आपको नियंत्रित करने देता है कि प्रिंट किए जाने या किसी स्ट्रिंग में इंटरपोलेट किए जाने पर आपका प्रकार कैसा दिखाई दे। आपको description गुणधर्म प्रदान करना होता है।

डिफ़ॉल्ट रूप सुंदर नहीं होता

इसके बिना, संरचनाएँ अपने सभी सदस्यों वाले पूर्ण रूप में प्रिंट होती हैं, जो अक्सर अनावश्यक रूप से लंबा होता है:

struct Point { let x: Int; let y: Int }
print(Point(x: 1, y: 2))  // Point(x: 1, y: 2)

description जोड़ना

अनुरूपता घोषित करें और var description: String प्रदान करें:

struct Point: CustomStringConvertible {
    let x: Int
    let y: Int
    var description: String { "(\(x), \(y))" }
}
print(Point(x: 1, y: 2))  // (1, 2)

print और String(describing:) द्वारा उपयोग

आपके द्वारा दिया गया description वही होता है जिसका उपयोग print और स्ट्रिंग इंटरपोलेशन करते हैं:

struct Money: CustomStringConvertible {
    let cents: Int
    var description: String { "$\(Double(cents) / 100)" }
}
let m = Money(cents: 250)
print("price is \(m)")  // price is $2.5

description बनाम सीधे गुणधर्म

description मनुष्यों के पढ़ने योग्य, उपयोगकर्ता के सामने दिखने वाले पाठ के लिए है। इसे दोबारा पार्स करने के लिए नहीं बनाया गया है — यह एक अलग विषय है (Codable)। इसे पढ़ने योग्य रखें।

एनम को फ़ॉर्मैट करना

एनम को उपयोगकर्ता-अनुकूल नाम दें:

enum Suit: CustomStringConvertible {
    case hearts, spades
    var description: String {
        switch self {
        case .hearts: return "Hearts"
        case .spades: return "Spades"
        }
    }
}
print(Suit.hearts)  // Hearts

विवरण संयोजित करना

सदस्यों के विवरण से description बनाएँ:

struct Card: CustomStringConvertible {
    let rank: Int
    let suit: String
    var description: String { "\(rank) of \(suit)" }
}
let cards = [Card(rank: 1, suit: "H"), Card(rank: 13, suit: "S")]
print(cards.map { $0.description })  // ["1 of H", "13 of S"]

संग्रहों के अंदर

किसी संग्रह को प्रिंट करने पर उसके प्रत्येक तत्व के description को कॉल किया जाता है:

struct Tag: CustomStringConvertible {
    let name: String
    var description: String { "#\(name)" }
}
print([Tag(name: "swift"), Tag(name: "ios")])  // [#swift, #ios]

इंटरपोलेशन description का उपयोग करता है

स्ट्रिंग इंटरपोलेशन अपने-आप आपके description को चुन लेता है:

struct Temperature: CustomStringConvertible {
    let celsius: Int
    var description: String { "\(celsius)C" }
}
let t = Temperature(celsius: 21)
print("Now: \(t)")  // Now: 21C

इसे हल्का रखें

description को अक्सर कॉल किया जा सकता है (लॉग दर्ज करने और डीबगिंग के दौरान)। इसके अंदर भारी काम करने से बचें; संग्रहीत गुणधर्मों से एक सरल स्ट्रिंग बनाएँ।

struct ID: CustomStringConvertible {
    let value: Int
    var description: String { "ID#\(value)" }
}
print(ID(value: 42))  // ID#42

सशर्त फ़ॉर्मैटिंग

description स्वाभाविक रूप से पढ़े जाने के लिए स्थिति के आधार पर अलग-अलग शाखा चुन सकता है:

struct Stock: CustomStringConvertible {
    let count: Int
    var description: String {
        count == 0 ? "Out of stock" : "\(count) in stock"
    }
}
print(Stock(count: 0))  // Out of stock
print(Stock(count: 5))  // 5 in stock

त्वरित जाँच

CustomStringConvertible के लिए किस गुणधर्म की आवश्यकता होती है?

पुनरावलोकन

आपने CustomStringConvertible सीखा:

  • उपयोगकर्ता के सामने दिखने वाले पाठ के लिए var description: String प्रदान करें
  • इसका उपयोग print, String(describing:) और इंटरपोलेशन करते हैं
  • इसे पढ़ने योग्य और हल्का रखें; दोबारा उसी मान में बदलने का लक्ष्य न रखें
  • यह संग्रहों के अंदर अपने-आप काम करता है

अगला विषय: CustomDebugStringConvertible।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “CustomStringConvertible” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “CustomStringConvertible” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“CustomStringConvertible” में मैं क्या सीखूँगा?

अपने प्रकारों के लिए पठनीय विवरण परिभाषित कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“CustomStringConvertible” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. CustomStringConvertible
  2. CustomDebugStringConvertible
  3. Mirror से रिफ़्लेक्शन
  4. डिबग-अनुकूल प्रकार बनाना
← Swift Academy पर वापस जाएँ