给定一个具有记录语法的示例数据类型:
data VmInfo = VmInfo {infoVid :: String
,infoIndex :: Int
,infoPid :: Int
,infoExe :: String
} deriving (Show)
和 (vmInfo :: String -> VmInfo) 函数,该函数生成并返回给定 vm 名称为字符串的上述数据结构。
我可以看到两种方法来提取 VmInfo 数据类型的各个部分。
(VmInfo vid _ _ _) <- vmInfo vm
这只是一个模式匹配。和 ...
vid <- infoVid <$> vmInfo vm
使用记录语法编译器生成的函数。
问题很简单:哪种方法是首选方法?
明智的打字量它们是相同的,所以我正在寻找速度和正确性/最佳实践。
我假设模式匹配会更快,但是记录语法有什么意义呢?
谢谢。