获取自己数据类型的一个值

时间:2014-05-28 11:37:59

标签: haskell types

我有自己创建的数据类型。它看起来像:

data Message = Message {
_timeStamp :: Integer,
_userName :: String,
_messageContent :: String}

现在我希望以例如消息的用户名访问。我尝试了很多,但它还没有工作。有人给我一个提示吗?

并且:这些{}是什么?从来没有在Haskell中看到过..

1 个答案:

答案 0 :(得分:4)

{}表示创建(命名)字段和访问器函数的记录语法,如下所示:

_timeStamp :: Message -> Integer
_userName :: Message -> String
_messageContent :: Message -> String

要访问字段,只需键入字段名称和消息,如下所示:

m = Message 0 "ThreeFx" "Hey there!"
print (_userName m) --prints "ThreeFx"

记录语法可以帮助您自动拥有访问时间戳的功能,例如,您不必明确键入每一个:

timeStamp (Message t _ _) = t
userName (Message _ u _) = u
messageContent (Message _ _ c) = c

有关详细信息,请查看here