Учебники

Вяз — Типы данных

Система типов представляет различные типы значений, поддерживаемые языком. Система типов проверяет достоверность предоставленных значений, прежде чем они будут сохранены или обработаны программой. Это гарантирует, что код ведет себя как ожидалось. Система типов, кроме того, допускает более богатую подсказку по коду и автоматизированную документацию.

Вяз это статически типизированный язык. У вяза есть типы, которые похожи на те из других языков.

Число

Числовой тип данных представляет числовые значения. Система типов 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 поддерживает следующие структурированные типы данных —

  • Кортеж
  • Список
  • запись
  • запись

Они будут подробно обсуждаться в следующих главах.