Swift Academy · पाठ

Access control (public/internal/fileprivate/private)

public, internal (डिफ़ॉल्ट), fileprivate और private की सहायता से फ़ाइलों और मॉड्यूलों में API की दृश्यता नियंत्रित करें। जानें कि कब उजागर करना है और कब छिपाना।

पाठ 3, कुल 3 में से8 चरण

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

पहुंच स्तरों का अवलोकन

Swift के पहुँच स्तर:

  • public: अन्य मॉड्यूलों के लिए दिखाई देता है
  • internal (डिफ़ॉल्ट): उसी मॉड्यूल में दिखाई देता है
  • fileprivate: केवल इसी स्रोत फ़ाइल में
  • private: घेरने वाले दायरे (प्रकार/एक्सटेंशन) तक

internal (डिफ़ॉल्ट)

किसी संशोधक को छोड़ देने पर घोषणाएँ internal बनती हैं और उसी मॉड्यूल (पैकेज/ऐप लक्ष्य) में कहीं भी उपयोग की जा सकती हैं।

struct Greeter {            // internal by default
    func hello(_ name: String) -> String { "Hello, \\(name)" }
}
let g = Greeter()
print(g.hello("Ada"))

public API का दायरा

अन्य मॉड्यूलों के लिए API उपलब्ध कराने हेतु उसे public चिह्नित करें; सहायक भागों को internal रखें ताकि सार्वजनिक सतह छोटी रहे।

public struct Math {
    public static func add(_ a: Int, _ b: Int) -> Int { a + b }
    // internal helper remains hidden outside the module
    static func double(_ x: Int) -> Int { x * 2 }
}
print(Math.add(1,2))

fileprivate का दायरा

fileprivate का उपयोग केवल उसी स्रोत फ़ाइल तक सीमित होता है। एक ही फ़ाइल में किसी प्रकार के सहायक भागों को अलग रखने के लिए यह उपयोगी है।

// In FileA.swift
fileprivate func hiddenInFile() { print("Only in this file") }

struct A {
    func call() { hiddenInFile() } // OK: same file
}
A().call()

private का दायरा

private पहुँच को घेरने वाले दायरे (प्रकार/एक्सटेंशन) तक सीमित करता है। अपरिवर्तनीय नियमों की कड़ी सुरक्षा के लिए इसका उपयोग करें।

struct Box {
    private var value = 0     // visible only inside Box declaration
    mutating func set(_ v: Int) { value = v } // controlled write
    func get() -> Int { value }                // controlled read
}
var b = Box()
b.set(7)
print(b.get())
// b.value = 3   // error: 'value' is private

डिज़ाइन संबंधी सुझाव

डिज़ाइन संबंधी सुझाव:

  • डिफ़ॉल्ट रूप से internal रखें और उपभोक्ताओं की आवश्यकता वाली चीज़ों को ही public के रूप में उपलब्ध कराएँ।
  • API को छोटा रखने के लिए सहायक भागों हेतु private/fileprivate को प्राथमिकता दें।
  • किसी सदस्य का पहुँच स्तर उसके प्रकार से अधिक व्यापक नहीं हो सकता।

डिफ़ॉल्ट पहुँच

त्वरित जाँच: डिफ़ॉल्ट पहुँच स्तर क्या होता है?

पुनरावलोकन

पुनरावलोकन: मॉड्यूल के लिए चीज़ें उपलब्ध कराने हेतु public का उपयोग करें, अधिकांश चीज़ों को internal रखें और अपरिवर्तनीय नियमों की सुरक्षा के लिए विवरणों को fileprivate/private से छिपाएँ।

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

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

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

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

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

क्या “Access control (public/internal/fileprivate/private)” पाठ निःशुल्क है?

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

“Access control (public/internal/fileprivate/private)” में मैं क्या सीखूँगा?

public, internal (डिफ़ॉल्ट), fileprivate और private की सहायता से फ़ाइलों और मॉड्यूलों में API की दृश्यता नियंत्रित करें। जानें कि कब उजागर करना है और कब छिपाना। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

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

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

“Access control (public/internal/fileprivate/private)” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Memberwise init और mutating मेथड
  2. Inheritance, overriding और final
  3. Access control (public/internal/fileprivate/private)
← Swift Academy पर वापस जाएँ