package com.ming.test

/**
* 在Scala中,偏函数是具有类型PartialFunction[-T,+V]的一种函数。T是其接受的函数类型,V是其返回的结果类型。
* 偏函数最大的特点就是它只接受和处理其参数定义域的一个子集,而对于这个子集之外的参数则抛出运行时异常。
* 这与Case语句的特性非常契合,因为我们在使用case语句是,常常是匹配一组具体的模式,最后用“_”来代表剩余的模式。
* 如果一一组case语句没有涵盖所有的情况,那么这组case语句就可以被看做是一个偏函数。
*
* 适用场景
* 偏函数主要用于这样一种场景:对某些值现在还无法给出具体的操作(即需求还不明朗),
* 也有可能存在几种处理方式(视乎具体的需求);我们可以先对需求明确的部分进行定义
*/
object PartialFunction { val signal: PartialFunction[Int, Int] = {
case x if x >= 1 => 1
case x if x <= -1 => -1
} val composed_signal: PartialFunction[Int,Int] = signal.orElse{
case 0 => 0
} def main(args: Array[String]): Unit = {
var a="3+4".collect{case '+' => 1;case '3' => -1}
println(a)//Vector(-1, 1) println(composed_signal(1))
} }

scala比java要复杂一点...

最新文章

  1. 【深入浅出jQuery】源码浅析2--奇技淫巧
  2. 认识 EXT2 文件系统
  3. javascript: parse JSON
  4. C++多线程の线程通信future,promise,async
  5. Solr搭建大数据查询平台
  6. SharePoint2010升级到SharePoint2013操作手册
  7. firefox阅读模式
  8. iOS FMDB小试了一下
  9. Mir2源码详解之服务端-选择(角色)网关(SelGate)
  10. Android——AnimationDrawable 实现动画
  11. 深入理解Binder(一),从AIDL谈起
  12. Library vector Type
  13. PL/SQL Developer主界面窗口左边窗口默认设置
  14. 服务端无法获取到Ajax发送post请求的参数
  15. JAVA设计模式(09):结构化-代理模式(Proxy)
  16. 基于Python,scrapy,redis的分布式爬虫实现框架
  17. php里面的变量的使用
  18. Docker学习笔记1:CentOS7 下安装Docker
  19. jquery添加节点时能有点击事件
  20. python中线程的知识点

热门文章

  1. JavaScript:JavaScript事件的处理
  2. 为什么玩VR眼镜会头晕?
  3. Linux中的两种守护进程stand alone和xinetd
  4. 由一个Servlet 看java入门常犯的几个错误
  5. mysql 快速生成百万条测试数据
  6. storm安装
  7. SWIFT 闭包的简单使用
  8. 线性空间光照(即Gamma)
  9. redsocks 配合iptables设置全局sockts5代理
  10. tableview在第一次显示时会自动relodata