型システムは、言語でサポートされているさまざまなタイプの値を表し、型システムは、プログラムによって保存または操作される前に、提供された値の有効性をチェックします。
これより、コードが希望のように動作することが保証され、型システムにより、より豊富なコードヒントと自動化されたドキュメントが可能になります。
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(文字シーケンスを格納する) | “ ceodata.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>
--------------------------------------
------------------------------------------
> "ceodata.com"
"ceodata.com" : String
> 'F'
'F' : Char
ブール型
ElmのBoolデータ型は、TrueとFalse、2つの値のみをサポートします。 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は、ユーザーデータ型の作成をサポートしています。例えば、支払い方法について考えてみます。 このアプリケーションは、クレジットカード、デビットカード、オンラインバンキングなどのさまざまな支払い方法を格納する必要があります。これは、カスタムデータ型によって、その値を3つの受け入れ可能な支払い方法に制限することで実現できます。
次の例は、カスタムデータ型を作成する方法を説明します。
> 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は、次の構造化データ型をサポートしています。
- Tuple
- List
- Record
構造化データ型については、次の記事で詳しく説明します。
コメントを残す