Система типов представляет различные типы значений, поддерживаемые языком. Система типов проверяет достоверность предоставленных значений, прежде чем они будут сохранены или обработаны программой. Это гарантирует, что код ведет себя как ожидалось. Система типов, кроме того, допускает более богатую подсказку по коду и автоматизированную документацию.
Вяз это статически типизированный язык. У вяза есть типы, которые похожи на те из других языков.
Число
Числовой тип данных представляет числовые значения. Система типов Elm поддерживает следующие числовые типы:
Старший | Тип | пример |
---|---|---|
1 | номер — хранит любой номер | 7 — это числовой тип |
2 | Float — хранит дробные значения | 7/2 дает 3,5 результата как Float |
3 | Int — хранит не дробные значения | 7 // 2 дает 3 результата как Int |
Номер типа вмещает как дробные, так и не дробные значения. Откройте Elm REPL и попробуйте примеры, приведенные ниже —
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 используется для представления последовательности символов. Тип данных Char используется для представления одного символа. Строковые значения определены в двойных кавычках «, а значения Char заключены в одинарные кавычки».
Старший | Тип | пример |
---|---|---|
1 | String — хранит последовательность символов | «TutorialsPoint» |
2 | Char — хранит дробные значения | «Т» |
Откройте Elm REPL и попробуйте примеры, приведенные ниже —
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
Тип данных Bool в Elm поддерживает только два значения — True и False. Ключевое слово Bool используется для представления логического значения.
Старший | Тип | пример |
---|---|---|
1 | Bool — хранит значения True или False | 1 == 1 возвращает True |
Откройте Elm REPL и попробуйте примеры, приведенные ниже —
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
Пользовательские типы
Elm поддерживает создание пользовательских типов. Например, рассмотрим платежное приложение. В приложении необходимо хранить различные способы оплаты — кредитная карта, дебетовая карта и банковская сеть. Это может быть достигнуто путем определения пользовательского типа и ограничения его значения тремя приемлемыми способами оплаты.
В следующем примере показано, как создать пользовательский тип.
> 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
В приведенном выше примере мы создали пользовательский тип PaymentMode. Переменные payment1 и payment2 присваиваются значениям PaymentMode. Если значение, присвоенное переменной, не соответствует ни одному из значений, определенных типом PaymentMode, приложение выдаст синтаксическую ошибку.
Структурированные типы данных
Структурированные типы данных могут использоваться для хранения нескольких значений в структурированном формате. Elm поддерживает следующие структурированные типы данных —
- Кортеж
- Список
- запись
- запись
Они будут подробно обсуждаться в следующих главах.