在packages-haskell2010/System/IO.hs中,我们有以下行:
import "base" System.IO hiding (openFile, hWaitForInput)
Run Code Online (Sandbox Code Playgroud)
导入时import未记录此形式(其后跟一个字符串,然后是模块名称).假设String(在本例中)只是引用一个目录,我是否正确?"base"
字符串引用包,因为这是包限定的导入.该扩展程序已启用
{-# LANGUAGE PackageImports #-}
Run Code Online (Sandbox Code Playgroud)
可以使用它来包含命名包中的给定模块.在您的情况下,它将System.IO从包"base" 导入:
使用该
-XPackageImports标志,GHC允许导入声明由要从中导入模块的包名称限定.例如:Run Code Online (Sandbox Code Playgroud)import "network" Network.Socket将从
Network.Socket包网络(任何版本)导入模块.当相同模块可从多个包中获得时,或者在正在构建的当前包和外部包中都存在时,这可用于消除导入的歧义.
如果您想知道系统上有哪些软件包,请使用ghc-pkg list.请注意,ghc-pkg recache如果您在cabal中中止了软件包的安装,则可能需要一个,并且recache可能需要管理员权限(取决于您的平台).
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |