インポートとモジュール

Elmでは、importキーワードを使用してモジュールをインポートします。

import Html

これは Htmlモジュールをインポートします。すると完全修飾パスを使用して、このモジュールの関数と型を使用できます。

Html.div [] []

また、モジュールをインポートして、そこから特定の関数と型をexposeすることもできます。

import Html exposing (div)

divは現在のスコープに導入され、直接使うことができます:

div [] []

モジュール内のすべてをexposeすることさえできます:

import Html exposing (..)

この場合、モジュール中のすべての関数と型を直接使用することができます。しかし、あいまいさやモジュール間の衝突の可能性があるため、これはほとんどの場合お勧めできません。

モジュール名と同じ名前の型

多くのモジュールは、モジュールと同じ名前の型をエクスポートします。例えば、 HtmlモジュールはHtml型を持ち、 TaskモジュールはTask型を持っています。

この関数は Html要素を返します:

import Html

myFunction : Html.Html
myFunction =
    ...

上記は以下と等価です:

import Html exposing (Html)

myFunction : Html
myFunction =
    ...

最初の例は Htmlモジュールのみをインポートし、完全修飾パスHtml.Htmlを使用します。

2番目の例では、 HtmlモジュールをHtmlモジュールからexposeしています。また、Html型を直接使用します。

モジュールの宣言

elmでモジュールを作成するときは、最初にmodule宣言を追加します:

module Main exposing (..)

Mainはモジュールの名前です。 exposing(..)は、このモジュールのすべての関数と型を公開することを意味します。 elmは、このモジュールをMain.elmというファイル、つまりモジュールと同じ名前のファイルで見つけることを想定しています。

アプリケーションにより深いファイル構成を持たせることができます。たとえば、ファイルPlayers/Utils.elmには次のような宣言が必要です。

module Players.Utils exposing (..)

アプリケーションのどこからでもこのモジュールをインポートすることができます:

import Players.Utils

results matching ""

    No results matching ""