Swift Academy · Lektion

Standardvärden i funktionsparametrar

Ge parametrar standardvärden för att förenkla anropsställen.

Lektion 3 av 413 steg

Standardvärden i funktionsparametrar är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 3 av 4. 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 4 lektioner.

Vad är standardparametrar

En funktionsparameter kan ha ett standardvärde. Anropande kod kan utelämna argumentet, så fyller Swift automatiskt i standardvärdet.

func greet(name: String = "Guest") {
    print("Hello, \(name)")
}
greet()
greet(name: "Ada")

Deklarera ett standardvärde

Ni anger ett standardvärde efter parametertypen med =. Standardvärdet används bara när anropet inte skickar med argumentet.

func power(base: Int, exponent: Int = 2) -> Int {
    var result = 1
    for _ in 0..<exponent { result *= base }
    return result
}
print(power(base: 5))
print(power(base: 5, exponent: 3))

Flera standardvärden

Ni kan ange standardvärden för flera parametrar. Anropande kod behöver bara ersätta de värden som är relevanta.

func makeBox(width: Int = 1, height: Int = 1) -> Int {
    return width * height
}
print(makeBox())
print(makeBox(width: 4))

Blanda obligatoriska parametrar och standardparametrar

Obligatoriska parametrar saknar standardvärde, medan standardparametrar har ett. Placera de obligatoriska först så att anropande kod enkelt kan utelämna avslutande standardparametrar.

func send(message: String, urgent: Bool = false) {
    print("\(urgent ? "URGENT: " : "")\(message)")
}
send(message: "Hi")
send(message: "Fire!", urgent: true)

Standardvärden minskar behovet av överlagringar

Innan standardparametrar fanns kunde Ni behöva skriva flera överlagrade funktioner. En funktion med standardvärden ersätter dem alla.

func connect(host: String, port: Int = 80) {
    print("\(host):\(port)")
}
connect(host: "example.com")
connect(host: "example.com", port: 8080)

Ersätt valfri delmängd

Ni kan ersätta ett standardvärde och behålla de andra, så länge Ni använder argumentetiketter för att vara tydlig.

func style(size: Int = 12, bold: Bool = false, italic: Bool = false) {
    print("\(size) bold:\(bold) italic:\(italic)")
}
style(bold: true)

Standardvärden kan vara uttryck

Ett standardvärde kan vara vilket uttryck som helst av rätt typ och utvärderas när argumentet utelämnas.

func now(stamp: Int = 1000 + 1) {
    print(stamp)
}
now()
now(stamp: 5)

Standardvärde för en optional

Ett vanligt mönster är en optional-parameter med standardvärdet nil, vilket låter anropande kod utelämna den helt.

func log(_ text: String, tag: String? = nil) {
    print("[\(tag ?? "general")] \(text)")
}
log("Started")
log("Saved", tag: "db")

Kombinera med nil-koalescering

Standardparametrar och ?? fungerar bra tillsammans: ta emot en optional och använd sedan koalescering i funktionskroppen.

func price(amount: Int? = nil) -> Int {
    return amount ?? 10
}
print(price())
print(price(amount: 25))

Standardvärden i initialiserare

Samma funktion fungerar i strukturinitialiserare, så att Ni kan skapa objekt med rimliga standardvärden.

struct Settings {
    var volume: Int
    init(volume: Int = 50) {
        self.volume = volume
    }
}
print(Settings().volume)
print(Settings(volume: 80).volume)

Fördelar för läsbarheten

Standardparametrar gör anropsplatser kortare och tydliggör det vanliga fallet, samtidigt som full kontroll fortfarande är möjlig när det behövs.

func repeatText(_ text: String, times: Int = 1) {
    for _ in 0..<times { print(text) }
}
repeatText("Hi")
repeatText("Yo", times: 2)

Snabbkontroll

Testa standardparametrar.

Sammanfattning: standardvärden i funktionsparametrar

Standardvärden för parametrar gör att anropande kod kan utelämna argument. Deklarera dem med = efter typen, kombinera dem med obligatoriska parametrar och använd dem tillsammans med ?? eller optionals för flexibla API:er.

func tax(amount: Int, rate: Int = 10) -> Int {
    return amount + amount * rate / 100
}
print(tax(amount: 100))
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 ”Standardvärden i funktionsparametrar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Standardvärden i funktionsparametrar”, 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 4 lektioner.

Vad lär jag mig i ”Standardvärden i funktionsparametrar”?

Ge parametrar standardvärden för att förenkla anropsställen. 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 4.

Hur lång tid tar lektionen ”Standardvärden i funktionsparametrar”?

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. Nil-coalescing-operatorn
  2. Kedja standardvärden
  3. Standardvärden i funktionsparametrar
  4. Standardvärden för Dictionary-subscript
← Tillbaka till Swift Academy