『阿男的Haskell进阶学习笔记』*02 `type`关键字*

『阿男的Haskell进阶学习笔记』*02 type关键字*

我们这次介绍两个关键字,分别是typenewtype

首先是type,这个关键字可以允许我们来把一种data type给做一下命名。比如我们常用的String,实际上就是[Char]的代名词,我们可以通过ghci:i命令验证这一点:

Prelude> :i String
type String = [Char] 	-- Defined in ‘GHC.Base’

从上面的输出可以看到String就是[Char]的代名词,Haskell是通过type来完成这种命名的。我们还可以使用type来定义自己的类型名称,下面是例子:

Prelude> type Name = String
Prelude> :i Name
type Name = String 	-- Defined at <interactive>:6:1

可以看到我们定义了一个新的type叫做Name。接下来我们可以用用看这个新定义的type:

Prelude> data Person = Person { name :: Name }
Prelude> peter = Person { name = "Peter" }
Prelude> name peter
"Peter"

如上面的代码所示,我们定义了叫做Person的数据类型,它的constructor接受一个Name类型的参数,而这个Name类型实际上就是String类型,因此我们给name赋值"Peter"完全没有问题,然后最后我们用record syntax^1帮我们创建的name函数取得了这个赋值。

转载于:https://my.oschina.net/u/3195023/blog/817254

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值