Haskell 数据类型声明中存在多个声明错误
我目前正在Haskell中构建一个twittercli客户端,我有一个数据类型表示DM和一个表示tweet。但是,我得到了一个多重声明错误,因为我必须对这两个名称使用相同的名称:Haskell 数据类型声明中存在多个声明错误,haskell,Haskell,我目前正在Haskell中构建一个twittercli客户端,我有一个数据类型表示DM和一个表示tweet。但是,我得到了一个多重声明错误,因为我必须对这两个名称使用相同的名称: data Users = Users { screen_name :: String } deriving(Show, Generic) data Tweet = Tweet { text :: !Text, retweeted :: Bool,
data Users = Users { screen_name :: String } deriving(Show, Generic)
data Tweet = Tweet { text :: !Text,
retweeted :: Bool,
user :: Users
} deriving (Show, Generic)
data DM = DM { text :: !Text,
sender_screen_name :: String
} deriving (Show, Generic)
有人知道这个特定问题的解决方案吗?根据定义,命名成员只是用于调用数据结构中的值的函数
因此,如果您真的想使用它们,可以通过使用语言扩展来实现。您可以通过在文件中声明以下内容来实现:
{-#LANGUAGE DuplicateRecordFields#-}
根据定义,命名成员只是用于调用数据结构中的值的函数
因此,如果您真的想使用它们,可以通过使用语言扩展来实现。您可以通过在文件中声明以下内容来实现:
{-#LANGUAGE duplicate recordfields#-}
将其移动到不同的模块中或重命名它们(dm_text
,…)-如果您使用的是GHC 8,您可以查看一下,但我个人不太喜欢这样。问题是它必须匹配api名称,因此它返回我需要的信息,所以dm_文本不起作用。我将考虑创建一个模块威尔是的,但您始终可以选择自己实现JSON实例,因此名称无关紧要(但模块可能更简单;)。要么将其移动到不同的模块中,要么重命名它们(dm_text
,…)-如果你在GHC 8上,你可以看看,但我个人不太喜欢这个问题是它必须匹配api名称,所以它返回我需要的信息,所以dm_文本不起作用。我将考虑创建一个模块well yes-但您始终可以选择自己实现JSON实例-因此名称无关紧要(但模块可能更容易;)