再出口合格 - 如何解决它现在,任何解决方案?

时间:2015-07-18 07:22:13

标签: haskell module

我遇到与此问题Re-export qualified?

中描述的完全相同的问题
module Foo.A where

foo = 42
     

module Foo.B where

foo = 12
     

你想写一个超级模块

module Foo (
      module Foo.A
    , module Foo.B
    ) where

import Foo.A
import Foo.B
     

重新导出这些模块,你会得到一个名字冲突。

五年前有人问过,我想从那以后可能会有一些变化。有没有?如果没有,那仍然没有解决方案吗?

认为镜头可以解决它。

更新

每个模块中有很多函数foo(foo1,foo2等),我想从两个模块中使用它们。毕竟,每个模块中也可以有data个相同的成员名称。

所以隐藏并不是一个解决方案。

1 个答案:

答案 0 :(得分:2)

没有新的解决方案,但仍有解决方案。 首先,由于只能导出一个if error == nil { dispatch_async(dispatch_get_main_queue()) { let dataArray:[AnyObject] = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! [AnyObject] for data in dataArray { let dictionary:[String:String] = data as! [String:String] if dictionary["StaffID"] != nil { self.astrUsers.append(dictionary["LastName"]! + ", " + dictionary["FirstName"]!) self.astrUserIDs.append(dictionary["StaffID"]!) self.pkvUser.reloadAllComponents() } self.pkvUser.reloadAllComponents() } } } ,因此您必须决定将哪个导出为裸foo。然后你只需要隐藏另一个别名。

foo

好吧,它并不是很优雅,但如果你真的需要,这是一种解决方法。