Statiske krav vs. instanskrav
Skeln mellem statiske krav (typeniveau) og instanskrav (objektniveau) i protocols, og lær, hvordan conformende typer implementerer dem.
Statiske krav vs. instanskrav er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 3 lektioner i alt.
Oversigt
Protokoller kan kræve instans- eller static-medlemmer. Når du ved, hvad der er hvad, kan du designe tydelige API'er.
Instanskrav
Instanskrav skal implementeres af hver instans af den type, der overholder protokollen.
protocol Drawable {
func draw() -> String
}
struct Circle: Drawable {
func draw() -> String { "Drawing a circle" }
}
print(Circle().draw())Statisk krav
Statiske krav opfyldes af medlemmer på typeniveau, såsom egenskaber eller metoder.
protocol Identifiable {
static var tag: String { get }
}
struct User: Identifiable {
static var tag: String { "USR" }
}
print(User.tag)Static i klasser
Klasser kan implementere static-krav med enten static eller class, hvor sidstnævnte tillader tilsidesættelse.
protocol Describable {
static func describeType() -> String
}
class Animal: Describable {
class func describeType() -> String { "Animal type" }
}
print(Animal.describeType())Blandet eksempel
Protokoller kombinerer ofte static- og instans-krav for at give fleksibilitet.
protocol Logger {
static var system: String { get }
func log(_ msg: String)
}
struct ConsoleLogger: Logger {
static let system = "console"
func log(_ msg: String) { print("[\\(Self.system)]", msg) }
}
let logger = ConsoleLogger()
logger.log("hello")Bemærkninger
Bemærkninger:
- Brug static til oplysninger, der gælder hele typen, eller til fabriksfunktioner.
- Brug instans til adfærd pr. objekt.
- Klasser kan bruge
classtil at tillade tilsidesættelse af statiske medlemmer.
Statisk kontra instans
Hurtigt tjek: Hvad kendetegner et statisk krav?
Opsummering
Opsummering: Instanskrav gælder for hvert objekt. Statiske krav gælder på typeniveau. Klasser kan bruge class til statiske medlemmer, der kan tilsidesættes.
Lær Swift med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 122
- Lektioner
- 409
Ofte stillede spørgsmål
Er lektionen “Statiske krav vs. instanskrav” gratis?
Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Statiske krav vs. instanskrav”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 3 lektioner i alt.
Hvad lærer jeg i “Statiske krav vs. instanskrav”?
Skeln mellem statiske krav (typeniveau) og instanskrav (objektniveau) i protocols, og lær, hvordan conformende typer implementerer dem. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Swift Academy?
Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.
Hvor lang tid tager lektionen “Statiske krav vs. instanskrav”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Swift Academy-lektion?
Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Grundlæggende protocols og extensions
- Protocol extensions vs. type extensions
- Statiske krav vs. instanskrav