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类型定义的任何值都不匹配,则应用程序将引发语法错误。
结构化数据类型
Tuple
List
Record
这些将在接下来的章节中详细讨论。