在模組中包裝程式碼

module 關鍵字可用於開始一個模組,該模組允許對程式碼進行組織和命名。模組可以定義外部介面,通常由 exported 符號組成。為了支援這種外部介面,模組可以具有未公開的內部功能和不適合公共使用的型別

一些模組主要用於包裝型別和相關函式。按照慣例,這些模組通常以型別名稱的複數形式命名。例如,如果我們有一個提供 Building 型別的模組,我們可以呼叫這樣一個模組 Buildings

module Buildings

immutable Building
    name::String
    stories::Int
    height::Int  # in metres
end

name(b::Building) = b.name
stories(b::Building) = b.stories
height(b::Building) = b.height

function Base.show(io::IO, b::Building)
    Base.print(stories(b), "-story ", name(b), " with height ", height(b), "m")
end

export Building, name, stories, height

end

然後該模組可以與 using 語句一起使用:

julia> using Buildings

julia> Building("Burj Khalifa", 163, 830)
163-story Burj Khalifa with height 830m

julia> height(ans)
830