Elm 数据类型

Elm 数据类型

类型系统表示语言支持的不同类型的值,类型系统在提供的值被程序存储或操纵之前检查其有效性。

这样可以确保代码的行为符合预期,类型系统还允许更丰富的代码提示和自动化文档。

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

数字类型

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

序号 类型 示例
1 number(存储任何数字) 7
2 Float(存储小数值 7/2=3.5
3 Int(存储非分数值 7//2=3

类型号可容纳小数和非小数值。

打开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
>

字符串和字符类型

字符串数据类型用于表示字符的序列。字符数据类型用于代表一个字符。字符串值在“双引号”中定义,字符值在“单引号”中包含。

序号 类型
1 String(存储字符序列) “ F2er.com”
2 Char(存储小数值 'F'

打开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>
--------------------------------------
------------------------------------------
> "F2er.com"
"F2er.com" : String
> 'F'
'F' : Char

布尔类型

Elm 中的 Bool 数据类型仅支持两个值: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 支持以下结构化数据类型:

  • Tuple

  • List

  • Record

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