匯入(Imports)與模組(Modules)

Elm 中匯入模組使用 import 關鍵字,例如:

import Html

這裡匯入 Html 模組。接著,使用完整修飾路徑(fully qualified path)來使用這個模組的函式及型別。

Html.div [] []

也可以只匯入特定的函式或型別:

import Html exposing (div)

div 被混入目前作用域(scope)中。你可以直接使用:

div [] []

你甚至可以將模組的所有東西匯出:

import Html exposing (..)

這樣就可以直接用模組所有的函式及型別。但在大多情況下並不建議這樣使用,這會最終造成歧異或模組之間的衝突。

模組與型別名稱相同

許多模組會匯出與其模組名稱相同的型別。例如,Html 模組有個 Html 型別,Task 模組有個 Task 型別。

下列函式傳回 Html 元素:

import Html

myFunction : Html.Html
myFunction =
    ...

同等於:

import Html exposing (Html)

myFunction : Html
myFunction =
    ...

第一個例子只匯入 Html 模組並使用完整資格修飾路徑 Html.Html

第二個例子從 Html 模組中匯出 Html 型別。直接使用 Html 型別。

模組宣告

當你新增模組時,需要在檔案最上方加入 module 宣告:

module Main exposing (..)

Main 是模組名稱。exposing (..) 表示匯出模組中所有函式及型別。Elm 預期檔案名稱為 Main.elm,換言之,檔案名稱與模組名稱相同。

應用程式可以有深層檔案結構。例如,檔案 Players/Utils.elm 的模組宣告為:

module Players.Utils exposing (..)

應用程式其他地方可以用下列語句匯入該模組:

import Players.Utils

results matching ""

    No results matching ""