Input ist eine Information, die einem Programm hinzugefügt und vom Code verwendet wird, um Änderungen vorzunehmen.
Bei den Funktionsbeispielen aus der vorangegangenen Lektion war kein Input erforderlich.
GetNumberOfMousetrapsYouCanAfford() : int
Das weißt du, weil die Klammern () in der obigen Funktionssignatur leer sind.
Parameter
Du kannst definieren, welchen Input eine Funktion benötigt, indem du einen Parameter zur Funktionssignatur hinzufügst.
Ein Parameter ist eine Konstante, die in der Funktionssignatur zwischen den Klammern deklariert wird. Wenn ein Parameter gesetzt wurde, kannst du ihn im Körper der Funktion verwenden.
Die Syntax für eine Funktion, die einen Parameter enthält, sieht wie folgt aus:
name(parameter : type) : type =
codeblock
Im folgenden Beispiel ist CoinsPerMousetrap nun ein Parameter für die Funktion BuyMousetrap():
var Coins : int = 500
BuyMousetrap(CoinsPerMousetrap : int) : void =
set Coins = Coins - CoinsPerMousetrap
Print("Du hast eine Mausefalle gekauft! Du hast noch {Coins} Münzen übrig.")
Dieser Code besagt Folgendes:
- Du hast eine Variable namens
Coinsmit einem ganzzahligen Anfangswert von 500:var Coins : int = 500. - Die Funktion namens
BuyMousetrap()braucht einen Parameter vonCoinsPerMousetrap. Da du allerdings nicht willst, dass die Funktion einen Wert zurückgibt, lautet der Typvoid.
Argumente
Wenn du eine Funktion aufrufst, die Parameter erwartet, musst du den Parametern Werte zuweisen, genauso wie du den Konstanten Werte zuweist.
Die zugewiesenen Werte für Funktionen werden Argumente der Funktion genannt.
Um die Funktion BuyMousetrap() jetzt aufzurufen, fügst du ein Argument in die Klammern ein. Es gibt dazu mehrere Möglichkeiten.
Zum Beispiel:
-
Du könntest
BuyMousetrap(CoinsPerMousetrap := 10)verwenden, was die Art und Weise nachahmt, wie du die Parameter für die Funktion definierst. Die „10“ ist ein Argument für die Funktion und ändert den Wert des Ergebnisses. -
Erinnerst du dich an die Literale aus Lektion 2 und 3? Du könntest auch einen Literalwert des gleichen Typs als Parameter verwenden.
-
Eine dritte Möglichkeit bestünde darin, eine zuvor deklarierte Variable oder Konstante als dein Argument zu verwenden. Du kannst die Funktion mit unterschiedlichen Werten für das Argument aufrufen und erhältst unterschiedliche Ergebnisse.
var Coins : int = 500
# Nach diesem Aufruf beträgt Coins 490.
BuyMousetrap(CoinsPerMousetrap := 10)
# Nach diesem Aufruf beträgt Coins 485.
BuyMousetrap(5)
CoinsPerMouseTrap : int = 20
# Nach diesem Aufruf beträgt Coins 465.
BuyMousetrap(CoinsPerMousetrap)
Mehrere Parameter
Du kannst so viele Parameter für die Funktion definieren, wie du willst, solange du die Parameter mit Kommas trennst.
Die Syntax für eine Funktion mit zwei Parametern sieht so aus:
name(parameter : type, parameter : type) : type =
codeblock
Wenn du die Funktion aufrufst, musst du die Argumente wieder durch Kommas trennen, so wie du auch die Parameter der Funktion definierst.
Zusammenfassung
- Ein Parameter ist eine Konstante, die in der Funktionssignatur deklariert wird. Er steht in Klammern.
- Ein Argument ist der Wert, der der Konstante zugewiesen ist, die im Parameter für diese Funktion verwendet wird.
- Du musst mehrere Parameter in einer einzigen Funktion mit Kommas trennen.