Elm - typy danych
System typów reprezentuje różne typy wartości obsługiwane przez język. System typów sprawdza poprawność podanych wartości, zanim zostaną one zapisane lub zmienione przez program. Gwarantuje to, że kod zachowuje się zgodnie z oczekiwaniami. System typów umożliwia ponadto bogatsze podpowiedzi do kodu i zautomatyzowaną dokumentację.
Elm to język z typowaniem statycznym. Wiąz ma typy podobne do tych z innych języków.
Numer
Numer Typ danych reprezentuje wartości liczbowe. System typu Elm obsługuje następujące typy liczbowe -
Sr. No. | Rodzaj | Przykład |
---|---|---|
1 | liczba - przechowuje dowolną liczbę | 7 to typ liczbowy |
2 | Float - przechowuje wartości ułamkowe | 7/2 daje wynik 3.5 jako Float |
3 | Int - przechowuje wartości nieułamkowe | 7 // 2 daje wynik 3 jako Int |
Numer typu obejmuje zarówno wartości ułamkowe, jak i nieułamkowe. Otwórz elm REPL i wypróbuj przykłady podane poniżej -
C:\Users\admin>elm repl
---- elm-repl 0.18.0
---------------------------------------------
--------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
------------------------------------------
--------------------------------------
> 7
7 : number
> 7/2
3.5 : Float
> 7//2
3 : Int
>
String i Char
String typ danych jest używany do reprezentowania sekwencję znaków. Char typ danych jest używany do reprezentowania pojedynczy znak. Wartości ciągów są definiowane w podwójnym cudzysłowie ”, a wartości Char są zawarte w pojedynczym cudzysłowie”.
Sr. No. | Rodzaj | Przykład |
---|---|---|
1 | Ciąg - przechowuje sekwencję znaków | „TutorialsPoint” |
2 | Char - przechowuje wartości ułamkowe | „T” |
Otwórz elm REPL i wypróbuj przykłady podane poniżej -
C:\Users\admin>elm repl
---- elm-repl 0.18.0 ---------------------------------------
--------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
--------------------------------------
------------------------------------------
> "TutorialsPoint"
"TutorialsPoint" : String
> 'T'
'T' : Char
Bool
Typ danych Bool w Elm obsługuje tylko dwie wartości - True i False. Słowo kluczowe Bool jest używane do reprezentowania wartości logicznej.
Sr. No. | Rodzaj | Przykład |
---|---|---|
1 | Bool - przechowuje wartości True lub False | 1 == 1 zwraca True |
Otwórz elm REPL i wypróbuj przykłady podane poniżej -
C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 -----------------------------------
------------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
----------------------------------------
----------------------------------------
> True
True : Bool
> False
False : Bool
> 1==1
True : Bool
> 1==2
False : Bool
> 1 /= 2 -- not equal
True : Bool
> not True
False : Bool
> not False
True : Bool
Typy niestandardowe
Elm obsługuje tworzenie typów zdefiniowanych przez użytkownika. Na przykład rozważ wniosek o płatność. Aplikacja musi przechowywać różne sposoby płatności - kartę kredytową, kartę debetową i bankowość internetową. Można to osiągnąć poprzez zdefiniowanie niestandardowego rodzaju i ograniczenie jego wartości do trzech akceptowalnych sposobów płatności.
Poniższy przykład pokazuje, jak utworzyć typ niestandardowy.
> type PaymentMode = CreditCard|NetBanking|DebitCard
> payment1 = CreditCard
CreditCard : Repl.PaymentMode
> payment2 = DebitCard
DebitCard : Repl.PaymentMode
> payment3 = UPI
-- NAMING ERROR ---------------------------------------------- repl-temp-000.elm
Cannot find variable `UPI`
7| payment3 = UPI
W powyższym przykładzie utworzyliśmy niestandardowy typ PaymentMode. Zmienne payment1 i payment2 są przypisane do wartości PaymentMode. Jeśli wartość przypisana do zmiennej nie pasuje do żadnej z wartości zdefiniowanych przez typ PaymentMode, aplikacja zgłosi błąd składniowy.
Strukturalne typy danych
Typów danych strukturalnych można używać do przechowywania wielu wartości w formacie strukturalnym. Elm obsługuje następujące typy danych strukturalnych -
- Tuple
- List
- Record
- Record
Zostaną one szczegółowo omówione w kolejnych rozdziałach.