我有自己创建的数据类型。它看起来像:
data Message = Message {
_timeStamp :: Integer,
_userName :: String,
_messageContent :: String}
现在我希望以例如消息的用户名访问。我尝试了很多,但它还没有工作。有人给我一个提示吗?
并且:这些{}是什么?从来没有在Haskell中看到过..
答案 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。