zoukankan      html  css  js  c++  java
  • scala偏函数

    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要复杂一点...

  • 相关阅读:
    Linux下用wget下载百度网盘资源
    android系统编译记录
    ubuntu 安装JDK & eclipse
    Linux安全攻略-僵尸进程
    smack user登陆
    smack 创建账户
    我的第一个开源App(彩票开奖查询)
    REST简介
    HTTP 状态码
    测试 ScribeFire Blog Editor
  • 原文地址:https://www.cnblogs.com/huzi007/p/6141453.html
Copyright © 2011-2022 走看看