首页 > 解决方案 > 访问数据类型的属性

问题描述

我创建了一个新的数据类型:

data Human = Human [Names] Age
  deriving(Eq,Show)
type Names = String
type Age = Int

现在我想为 Human 类型的对象访问 [Names] 的元素:

human1 = Human ["FirstName","LastName"] 22

对于我的示例,是否有一种简单的方法可以做到这一点,例如Names human1

标签: haskell

解决方案


在这种情况下,最简单的方法是定义一个函数,该函数与Human数据类型进行模式匹配:

getNames (Human names _) = names

否则,您可以使用记录语法来定义记录的字段:

data Human = Human { names :: [Names], age :: Age }

使用此语法,您可以实现namesage功能,它允许您访问字段:

human1 = Human ["FirstName","LastName"] 22
names human1

推荐阅读