Argument-Labels
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 54 von 86.
Swift gibt Ihnen die Kontrolle darüber, wie sich Funktionsaufrufe lesen lassen, indem Sie Argument-Label verwenden. Ein Argument-Label wird beim Aufrufen der Funktion verwendet, während der Parametername innerhalb des Funktionskörpers verwendet wird.
Sie können beides angeben, indem Sie die Argumentbezeichnung vor den Parameternamen schreiben:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Ausgabe: Hello, Alice!Hier ist to die Argumentbezeichnung (beim Aufruf verwendet) und name ist der Parametername (innerhalb der Funktion verwendet). Dadurch liest sich der Aufruf natürlicher: „greet to Alice“.
Manchmal möchten Sie das Label ganz weglassen, um Aufrufe übersichtlicher zu gestalten. Verwenden Sie einen Unterstrich (_) als Argument-Label:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Ausgabe: 25Ohne den Unterstrich müssten Sie square(number: 5) schreiben. Der Unterstrich hebt diese Anforderung auf und macht den Aufruf einfacher, wenn der Funktionsname den Zweck bereits verdeutlicht.
Aufgabe
EinfachErstellen Sie zwei Funktionen, die verschiedene Techniken für Argument-Label demonstrieren:
Funktion 1: send
- Verwenden Sie das Argument-Label
messagemit dem Parameternamentext(TypString) - Verwenden Sie das Argument-Label
tomit dem Parameternamenrecipient(TypString) - Geben Sie einen String im folgenden Format zurück:
"Sending '[text]' to [recipient]"
Funktion 2: double
- Verwenden Sie einen Unterstrich
_, um das Argument-Label wegzulassen - Parametername
number(TypInt) - Geben Sie die mit 2 multiplizierte Zahl zurück
Nachdem Sie beide Funktionen definiert haben, lesen Sie zwei Strings und eine Ganzzahl von der Eingabe ein, rufen Sie dann beide Funktionen auf und geben Sie die Ergebnisse in separaten Zeilen aus.
Sie erhalten die folgenden Eingaben:
- Erste Zeile: der Nachrichtentext (z. B.
"Hello") - Zweite Zeile: der Name des Empfängers (z. B.
"Alice") - Dritte Zeile: eine zu verdoppelnde Zahl (z. B.
"7")
Wenn die Eingaben beispielsweise "Hello", "Alice" und "7" sind, sollte die Ausgabe wie folgt aussehen:
Sending 'Hello' to Alice
14Spickzettel
Swift ermöglicht es Ihnen zu steuern, wie Funktionsaufrufe gelesen werden, indem Sie Argument-Label verwenden. Ein Argument-Label wird beim Aufrufen der Funktion verwendet, während der Parametername innerhalb des Funktionskörpers verwendet wird.
Geben Sie beides an, indem Sie das Argument-Label vor dem Parameternamen schreiben:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Ausgabe: Hello, Alice!Hier ist to das Argument-Label und name der Parametername.
Um das Argument-Label für sauberere Aufrufe wegzulassen, verwenden Sie einen Unterstrich (_):
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Ausgabe: 25Ohne den Unterstrich müssten Sie square(number: 5) schreiben.
Probier es selbst
// Eingabe lesen
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: Schreibe deinen Code unten
// Definiere die 'send'-Funktion mit den Argument-Labels 'message' und 'to'
// Definiere die 'double'-Funktion mit ausgelassenem Argument-Label unter Verwendung von '_'
// Rufe beide Funktionen auf und gib die Ergebnisse ausDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe