我正在学习 Learn You a Haskell for Great Good,我已经达到了第 8.4 节,“派生实例”。在本节中,有以下数据类型声明:
data Person = Person { firstName :: String
, lastName :: String
, age :: Int
} deriving (Eq)
在尝试的同时
*Main> mikeD == Person {firstName = "Michael", lastname = "Diamond", age = 43}
我收到以下错误:
<interactive>:55:41:
`lastname' is not a (visible) field of constructor `Person'
通过更正我删除了错误lastname
。lastName
问题:
在错误消息中,该词(visible)
向我暗示必须有可能将字段声明为 hidden / invisible。这是正确的还是不正确的?如果是,我如何将构造函数中的字段声明为隐藏,以及需要声明隐藏字段的一般场景是什么?如果您可以通过给出一个简单的使用示例来解释这一点,那将不胜感激。
注意:我在 LYAH 中找不到任何关于隐藏或不可见字段的参考/详细信息。