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 支援以下結構化資料型別 -

  • 元組
  • 列表
  • 記錄
  • 記錄

這些將在後續章節中詳細討論。

廣告