Elm - 数据类型



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

Elm 是一种静态类型的语言。Elm 的类型类似于其他语言中的类型。

数字

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

序号 类型 示例
1 number - 存储任何数字 7 是 number 类型
2 Float - 存储小数 7/2 结果为 3.5,类型为 Float
3 Int - 存储非小数 7//2 结果为 3,类型为 Int

number 类型可以容纳小数和非小数。打开 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 数据类型用于表示单个字符。String 值用双引号 " 定义,Char 值用单引号 ' 括起来。

序号 类型 示例
1 String - 存储字符序列 "TutorialsPoint"
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 支持以下结构化数据类型 -

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

这些将在后续章节中详细讨论。

广告