Aan de slagGa gratis aan de slag

Typeverklaringen

Een andere manier waarop we controle kunnen uitoefenen over onze functieparameters is het type van deze parameters. We kunnen voor elke variabele een gegevenstype specificeren, net zoals we in het vorige hoofdstuk met tuples hebben gedaan. Als het gegevenstype van het argument dat aan de functie wordt doorgegeven niet overeenkomt met het gegevenstype dat is opgegeven bij het definiëren van de functie, wordt er een fout gegenereerd.

Dit is weer een manier om onze functies te beheersen en te beschermen tegen ongewenste exceptions. In de huidige versie van onze functie my_profit zouden we nu een string aan elk argument kunnen doorgeven, maar we krijgen een fout als de return-instructie probeert een string van een andere string af te trekken. We kunnen dit voorkomen door het gegevenstype van elke parameter te definiëren.

Stel in het onderstaande voorbeeld het gegevenstype in voor elke parameter in de functie.

Let op: als we een gegevenstype proberen door te geven dat niet overeenkomt met wat we hebben gedefinieerd, krijgen we de fout:

MethodError: no method matching my_profit(::Int64, ::Int64)

Deze oefening maakt deel uit van de cursus

Julia voor gevorderden

Cursus bekijken

Oefeninstructies

  • Stel het gegevenstype in voor elke parameter, waarbij current_price en previous_price Float64-waarden moeten zijn en fees alleen een Int64-waarde mag zijn.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren