0Pricing
Swift Academy · Lektion

Zugriffskontrolle (public/internal/fileprivate/private)

Steuern Sie die Sichtbarkeit von APIs über Dateien und Module hinweg mit public, internal (Standard), fileprivate und private. Lernen Sie, wann Sie etwas veröffentlichen oder verbergen sollten.

Zugriffskontrolle (public/internal/fileprivate/private) ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Übersicht über Zugriffsebenen

Zugriffsebenen in Swift:

  • public: für andere Module sichtbar
  • internal (Standard): im selben Modul sichtbar
  • fileprivate: nur in dieser Quelldatei
  • private: im umgebenden Gültigkeitsbereich (Typ/Erweiterung)

internal (Standard)

Wenn Sie einen Modifikator weglassen, sind Deklarationen internal und können überall innerhalb desselben Moduls (Paketziel/App-Ziel) verwendet werden.

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

Öffentliche API-Oberfläche

Markieren Sie APIs als public, um sie für andere Module freizugeben; belassen Sie Hilfsfunktionen auf internal, damit die Oberfläche klein bleibt.

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))

Gültigkeitsbereich von fileprivate

fileprivate beschränkt die Verwendung auf die dieselbe Quelldatei. Das eignet sich hervorragend, um Hilfsfunktionen für einen Typ innerhalb einer Datei aufzuteilen.

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

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

Gültigkeitsbereich von private

private beschränkt den Zugriff auf den umgebenden Gültigkeitsbereich (Typ/Erweiterung). Verwenden Sie es, um Invarianten besonders strikt zu schützen.

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

Tipps zum Entwurf

Tipps zum Entwurf:

  • Verwenden Sie standardmäßig internal und geben Sie als public nur das frei, was Verbraucher benötigen.
  • Bevorzugen Sie private/fileprivate für Hilfsfunktionen, damit APIs klein bleiben.
  • Die Zugriffsebene eines Members darf nicht umfassender sein als die seines Typs.

Standardzugriffsebene

Kurzfrage: Was ist die standardmäßige Zugriffsebene?

Zusammenfassung

Zusammenfassung: Verwenden Sie public, um APIs für andere Module freizugeben, halten Sie die meisten Dinge internal und verbergen Sie Details mit fileprivate/private, um Invarianten zu schützen.

Häufig gestellte Fragen

Ist die Lektion „Zugriffskontrolle (public/internal/fileprivate/private)“ kostenlos?

Ja — der vollständige Text von „Zugriffskontrolle (public/internal/fileprivate/private)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Zugriffskontrolle (public/internal/fileprivate/private)“?

Steuern Sie die Sichtbarkeit von APIs über Dateien und Module hinweg mit public, internal (Standard), fileprivate und private. Lernen Sie, wann Sie etwas veröffentlichen oder verbergen sollten. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Zugriffskontrolle (public/internal/fileprivate/private)“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Memberwise-Init und mutating-Methoden
  2. Vererbung, Überschreiben und final
  3. Zugriffskontrolle (public/internal/fileprivate/private)
← Zurück zu Swift Academy