通常情况下,当你输入的东西,你不喜欢这样写道:
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 ...
)。