Statiska krav jämfört med instanskrav
Skilj mellan statiska krav (på typen) och instanskrav (på objektet) i protokoll och lär er hur typer som uppfyller protokollet implementerar dem.
Statiska krav jämfört med instanskrav ä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
Protokoll kan kräva instansmedlemmar eller static-medlemmar. Om du vet vilken typ som gäller blir det enklare att utforma tydliga API:er.
Instanskrav
Instanskrav måste implementeras av varje instans av den konforma typen.
protocol Drawable {
func draw() -> String
}
struct Circle: Drawable {
func draw() -> String { "Drawing a circle" }
}
print(Circle().draw())Static-krav
Static-krav uppfylls av medlemmar på typenivå, till exempel egenskaper 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 implementera static-krav med antingen static eller class, där det senare tillåter överskuggning.
protocol Describable {
static func describeType() -> String
}
class Animal: Describable {
class func describeType() -> String { "Animal type" }
}
print(Animal.describeType())Blandat exempel
Protokoll blandar ofta static- och instanskrav för större flexibilitet.
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")Anteckningar
Anteckningar:
- Använd static för information som gäller hela typen eller för fabriksmetoder.
- Använd instansmedlemmar för beteende per objekt.
- Klasser kan använda
classför att tillåta överskuggning av statiska medlemmar.
Static kontra instans
Snabb kontroll: Vad kännetecknar ett static-krav?
Sammanfattning
Sammanfattning: Instanskrav gäller för varje objekt. Static-krav gäller på typenivå. Klasser kan använda class för statiska medlemmar som får överskuggas.
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 ”Statiska krav jämfört med instanskrav” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Statiska krav jämfört med instanskrav”, 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 ”Statiska krav jämfört med instanskrav”?
Skilj mellan statiska krav (på typen) och instanskrav (på objektet) i protokoll och lär er hur typer som uppfyller protokollet implementerar dem. 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 ”Statiska krav jämfört med instanskrav”?
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
- Grunderna i protokoll och extensions
- Protokoll-extensions jämfört med type extensions
- Statiska krav jämfört med instanskrav