Typdeklarationer
Ett annat sätt att styra funktionsparametrar är att definiera deras datatyp. Du kan ange en datatyp för varje variabel, precis som vi gjorde i föregående kapitel med tupler. Om datatypen för argumentet som skickas in i funktionen inte stämmer överens med den definierade datatypen, genereras ett fel.
Detta är ytterligare ett sätt att kontrollera våra funktioner och skydda dem mot oönskade undantag. I den nuvarande versionen av funktionen my_profit skulle vi kunna skicka in en sträng som argument – men det skulle resultera i ett fel när return-satsen försöker subtrahera en sträng från en annan. Genom att definiera datatypen för varje parameter kan vi förebygga det.
I exemplet nedan anger du datatypen för varje parameter i funktionen.
Observera att om vi försöker skicka in en datatyp som inte matchar den definierade, får vi följande fel:
MethodError: no method matching my_profit(::Int64, ::Int64)
Den här övningen är en del av kursen
Julia för medelnivå
Övningsinstruktioner
- Ange datatypen för varje parameter, där
current_priceochprevious_priceska vara av typenFloat64, ochfeesenbart ska vara ettInt64-värde.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)