Swift Academy · Lektion

Åtkomstkontroll (public/internal/fileprivate/private)

Styr synligheten för API:er mellan filer och moduler med public, internal (standard), fileprivate och private. Lär er när ni bör exponera respektive dölja delar.

Lektion 3 av 38 steg

Åtkomstkontroll (public/internal/fileprivate/private) är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 3 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 3 lektioner.

Översikt över åtkomstnivåer

Åtkomstnivåer i Swift:

  • public: synlig i andra moduler
  • internal (standard): synlig i samma modul
  • fileprivate: endast i denna källfil
  • private: det omslutande området (type/extension)

internal (standard)

Om Ni utelämnar en åtkomstmodifierare blir deklarationer internal och kan användas var som helst inom samma modul (paket eller app-target).

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

public API-yta

Märk API:er med public för att exponera dem för andra moduler och låt hjälpfunktioner vara interna för att hålla API-ytan liten.

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-omfång

fileprivate begränsar användningen till samma källfil. Det passar bra för att dela upp hjälpfunktioner för en typ i en och samma fil.

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

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

private-omfång

private begränsar åtkomsten till det omslutande området (type/extension). Använd det för att skydda invarianta villkor på ett strikt sätt.

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

Designtips

Designtips:

  • Använd internal som standard och exponera endast det som användarna behöver som public.
  • Prioritera private/fileprivate för hjälpfunktioner för att hålla API:erna små.
  • En medlems åtkomstnivå kan inte vara bredare än den åtkomstnivå som gäller för dess typ.

Standardåtkomst

Snabb kontroll: Vilken är standardåtkomstnivån?

Sammanfattning

Sammanfattning: Använd public för att exponera deklarationer för andra moduler, håll det mesta internal och dölj detaljer med fileprivate/private för att skydda invarianta villkor.

Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
122
Lektioner
409

Vanliga frågor

Är lektionen ”Åtkomstkontroll (public/internal/fileprivate/private)” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Åtkomstkontroll (public/internal/fileprivate/private)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Åtkomstkontroll (public/internal/fileprivate/private)”?

Styr synligheten för API:er mellan filer och moduler med public, internal (standard), fileprivate och private. Lär er när ni bör exponera respektive dölja delar. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Swift Academy?

Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Åtkomstkontroll (public/internal/fileprivate/private)”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Swift Academy-lektionen?

Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Memberwise init och mutating-metoder
  2. Arv, overriding och final
  3. Åtkomstkontroll (public/internal/fileprivate/private)
← Tillbaka till Swift Academy