当前位置:  开发笔记 > 编程语言 > 正文

在Haskell中导入数据类型

如何解决《在Haskell中导入数据类型》经验,为你挑选了1个好方法。

我正在尝试将数据类型从一个文件导入到另一个文件.

这是模块:

-- datatype.hs
module DataType (Placeholder) where

data Placeholder a = Foo a | Bar | Baz deriving (Show)

这是使用该模块的文件

-- execution.hs
import DataType (Placeholder)

main = do
    print Bar

当我跑步时,runhaskell execution.hs我得到了

execution.hs:4:10: Not in scope: data constructor ‘Bar’

我的代码可能存在多个问题,那么构建此代码的最佳方法是什么,以便我从模块导入特定的数据类型并能够查看它?



1> zigazou..:

您必须导入/导出类和构造函数:

在你的情况下,PlaceHolder是类,Foo并且Bar是构造函数.

因此,你应该写:

-- datatype.hs
module DataType (PlaceHolder (Foo, Bar, Baz)) where

-- execution.hs
import DataType (PlaceHolder (Foo, Bar, Baz))

或者更简单:

-- datatype.hs
module DataType (PlaceHolder (..)) where

-- execution.hs
import DataType (PlaceHolder (..))

如果您没有指定导出的内容:

-- datatype.hs
module DataType where

一切都将被导出(类,构造函数,函数......).

如果您未指定导入的内容

-- execution.hs
import DataType

DataType出口的一切都将可用.

指定进口和出口通常是一种很好的做法.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有