📜  Elm-数据类型

📅  最后修改于: 2020-11-04 05:37:51             🧑  作者: Mango


类型系统表示语言支持的不同类型的值。类型系统在提供的值被程序存储或操纵之前检查其有效性。这样可以确保代码的行为符合预期。类型系统还允许更丰富的代码提示和自动化文档。

Elm是一种静态类型的语言。 Elm的类型与其他语言的类型相似。

数字数据类型表示数值。 Elm类型系统支持以下数字类型-

Sr. No. Type Example
1 number − Stores any number 7 is number type
2 Float − Stores fractional values 7/2 gives 3.5 result as Float
3 Int − Stores non-fractional values 7//2 gives 3 result as Int

类型可容纳小数和非小数值。打开榆树REPL并尝试下面给出的示例-

C:\Users\admin>elm repl
---- elm-repl 0.18.0 
---------------------------------------------
--------------
:help for help, :exit to exit, more at 
------------------------------------------
--------------------------------------
> 7
7 : number
> 7/2
3.5 : Float
> 7//2
3 : Int
>

字符串和字符

String数据类型用于表示字符序列。 Char数据类型用于表示单个字符。字符串值在“双引号”内定义,字符值在“单引号”内。

Sr. No. Type Example
1 String − Stores a sequence of characters “TutorialsPoint”
2 Char − Stores fractional values ‘T’

打开榆树REPL并尝试下面给出的示例-

C:\Users\admin>elm repl
---- elm-repl 0.18.0 ---------------------------------------
--------------------
:help for help, :exit to exit, more at 
--------------------------------------
------------------------------------------
> "TutorialsPoint"
"TutorialsPoint" : String
> 'T'
'T' : Char

布尔

Elm中的Bool数据类型仅支持两个值-True和False。关键字Bool用于表示布尔值。

Sr. No. Type Example
1 Bool − Stores values True or False 1==1 returns True

打开榆树REPL并尝试下面给出的示例-

C:\Users\dell\elm>elm repl
---- elm-repl 0.18.0 -----------------------------------
------------------------
:help for help, :exit to exit, more at 
----------------------------------------
----------------------------------------
> 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支持以下结构化数据类型-

  • 元组
  • 清单
  • 记录
  • 记录

这些将在接下来的章节中详细讨论。