Elm - 数据类型


类型系统表示该语言支持的不同类型的值。在程序存储或操作所提供的值之前,类型系统会检查它们的有效性。这确保了代码的Behave符合预期。类型系统还允许更丰富的代码提示和自动化文档。

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

数字

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

先生。没有。 类型 例子
1 number - 存储任何数字 7是数字类型
2 Float - 存储小数值 7/2 给出 3.5 浮点数结果
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
>

字符串和字符

字符串数据类型用于表示字符序列Char数据类型用于表示单个字符。字符串值用双引号 " 定义,而Char值用单引号 ' 括起来。

先生。没有。 类型 例子
1 字符串 - 存储字符序列 《教程点》
2 Char - 存储小数值 'T'

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

布尔

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 支持以下结构化数据类型 -

  • 元组
  • 列表
  • 记录
  • 记录

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