Elm - 数据类型
类型系统表示该语言支持的不同类型的值。 在程序存储或操作所提供的值之前,类型系统会检查它们的有效性。 这确保了代码的行为符合预期。 类型系统还允许更丰富的代码提示和自动化文档。
Elm 是一种静态类型语言。 Elm 的类型与其他语言的类型相似。
数字类型
number 数据类型表示数值。 Elm 类型系统支持以下数字类型 −
Sr. No. | 类型 | 示例 |
---|---|---|
1 | number − 存储任意数字 | 7 是数字类型 |
2 | Float − 存储小数值 | 7/2 给出 3.5 浮点数结果 |
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 值用单引号 ' 括起来。
Sr. No. | 类型 | 示例 |
---|---|---|
1 | String − 存储字符序列 | "w3schools" |
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 用于表示布尔值。
Sr. No. | 类型 | 示例 |
---|---|---|
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 支持以下结构化数据类型 −
- 元组
- 列表
- 记录
这些将在接下来的章节中详细讨论。