通常情況下,當你輸入的東西,你不喜歡這樣寫道:
import Data.Foo -- A module that contains "data Bar = Bar ..."
myfunction = Bar 3 2 4 -- Use Bar
正如你所看到的,你可以直接訪問Data.Foo
模塊中的所有內容,就像在同一模塊中編寫代碼一樣。
可以替代進口的東西有資格,這意味着你必須指定完整模塊「路徑」來表示你是指每一次的事情你訪問它:
import qualified Data.Foo -- A module that contains "data Bar = Bar ..."
myfunction = Data.Foo.Bar 3 2 4 -- Use Bar
在這裏,你必須指定您正在訪問的數據類型的完整「路徑」,因爲該模塊已被導入爲合格。
還有另一種方式導入具有資格的東西;你可以指定模塊「路徑」像這樣一個別名:
import qualified Data.Foo as Foo -- A module that contains "data Bar = Bar ..."
myfunction = Foo.Bar 3 2 4 -- Use Bar
我們已經改名爲Data.Foo
部分簡單地Foo
。這樣,我們可以在引用數據構造函數時編寫Foo.Bar
。
您導入了模塊Data.Vector.Unboxed
,其別名爲Vector
。這意味着當您想要訪問Vector
數據類型時,您必須使用Vector.Vector
。我建議您導入矢量喜歡這個:
import Data.Vector.Unboxed (Vector)
import qualified Data.Vector.Unboxed as Vector
這樣,你直接導入Vector
類型,這樣就可以在沒有任何模塊預選賽訪問它,但是當你想使用Vector
功能,您需要添加前綴Vector
(例如Vector.null ...
)。