加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 为什么没有部分功能类型文字?

发布时间:2020-12-16 09:12:06 所属栏目:安全 来源:网络整理
导读:我不知道为什么部分函数类型不存在文字.我必须写 val pf: PartialFunction[Int,String] = { case 5 = "five"} 其中一个字面如:=会更短: val pf: Int := String = { case 5 = "five"} 经常使用部分功能,而在Scala中已经有一些“特殊”功能,所以为什么没有特
我不知道为什么部分函数类型不存在文字.我必须写

val pf: PartialFunction[Int,String] = {
  case 5 => "five"
}

其中一个字面如:=>会更短:

val pf: Int :=> String = {
  case 5 => "five"
}

经常使用部分功能,而在Scala中已经有一些“特殊”功能,所以为什么没有特殊的语法呢?

解决方法

可能部分是因为你不需要一个文字:你可以随时写你自己的:=>作为一个类型的中缀运算符,如果你想要更简洁的语法:

scala> type :=>[A,B] = PartialFunction[A,B]
defined type alias $colon$eq$greater

scala> val pf: Int :=> String = { case 5 => "five" }
pf: :=>[Int,String] = <function1>

scala> pf.isDefinedAt(0)
res0: Boolean = false

scala> pf.isDefinedAt(5)
res1: Boolean = true

不过,我不是Scala语言的设计师之一,所以这或多少是对“为什么”的猜测.您可能会在the scala-debate list获得更好的答案,这是更适合语言设计问题的场所.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读