Deklaracje typów
Kolejnym sposobem kontrolowania parametrów funkcji jest określanie ich typów danych. Dla każdej zmiennej można wskazać konkretny typ – tak samo jak robiliśmy to w poprzednim rozdziale przy pracy z krotkami. Jeśli typ argumentu przekazanego do funkcji nie zgadza się z typem zadeklarowanym w jej definicji, zostaje zgłoszony błąd.
To dodatkowy mechanizm zabezpieczający funkcje przed nieoczekiwanymi wyjątkami. W obecnej wersji funkcji my_profit można by przekazać ciąg znaków do każdego argumentu, co skończyłoby się błędem przy próbie odjęcia jednego ciągu od drugiego w instrukcji return. Można temu zapobiec, deklarując typy poszczególnych parametrów.
W poniższym przykładzie ustaw typ danych dla każdego parametru funkcji.
Pamiętaj, że próba przekazania argumentu o niezgodnym typie spowoduje błąd:
MethodError: no method matching my_profit(::Int64, ::Int64)
To ćwiczenie jest częścią kursu
Julia średnio zaawansowana
Instrukcje do ćwiczenia
- Ustaw typ danych dla każdego parametru:
current_priceiprevious_pricepowinny być wartościamiFloat64, afeeswyłącznie wartościąInt64.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)