您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Elm 数据类型

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

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

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

数字类型

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

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

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

字符串和字符类型

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

打开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用于表示布尔值。

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

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


联系我
置顶