Standardvärden i funktionsparametrar
Ge parametrar standardvärden för att förenkla anropsställen.
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))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
- Nil-coalescing-operatorn
- Kedja standardvärden
- Standardvärden i funktionsparametrar
- Standardvärden för Dictionary-subscript