Typdeklarationen
Eine weitere Kontrolle, die wir über unsere Funktionsparameter ausüben können, ist deren Typ. Wir können für jede Variable einen Datentyp festlegen, so wie wir es im vorherigen Kapitel mit Tupeln gemacht haben. Wenn der Datentyp des an die Funktion übergebenen Arguments nicht mit dem bei der Funktionsdefinition festgelegten Datentyp übereinstimmt, wird ein Fehler ausgelöst.
Das ist eine zusätzliche Möglichkeit, unsere Funktionen zu steuern und sie vor unerwünschten Ausnahmen zu schützen. In der aktuellen Version unserer Funktion my_profit könnten wir zwar jeweils einen String übergeben, aber es käme zu einem Fehler, sobald im Rückgabewert versucht wird, einen String von einem anderen String zu subtrahieren. Dagegen können wir uns absichern, indem wir den Datentyp jedes Parameters festlegen.
Lege im folgenden Beispiel den Datentyp für jeden Parameter in der Funktion fest.
Beachte: Wenn wir einen Datentyp übergeben, der nicht zu unserer Definition passt, erhalten wir den Fehler:
MethodError: no method matching my_profit(::Int64, ::Int64)
Diese Übung ist Teil des Kurses
Julia: Aufbaukurs
Anleitung zur Übung
- Lege den Datentyp für jeden Parameter fest:
current_priceundprevious_pricesollenFloat64-Werte sein, undfeessoll ausschließlich einInt64-Wert sein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Define my_profit with three type-restricted arguments
function my_profit(previous_price____, current_price____, fees____=2)
return current_price - previous_price - fees
end
# Call my_profit, passing in values of the correct data type
my_profit(100.00, 105.00)