zoukankan      html  css  js  c++  java
  • 【Scala】09 偏函数 PartialFunction

    更像是策略函数

    可拆分成一个部分,是若干个函数的组合

    package cn
    
    object HelloScala {
      def main(args: Array[String]): Unit = {
        // 偏函数 对输入参数进行强化检查
    
    
        // 案例需求
        val list : List[(String, Int)] = List(("a", 12), ("b", 35), ("c", 44), ("d", 55))
    
        // map转换 key不变, value2倍
        val newList = list.map(tuple => (tuple._1, tuple._2 * 2))
    
        // 模式匹配对元组元素赋值实现功能
        val newList2 = list.map(tuple => {
          tuple match  {
            case (a, b) => (a, b * 2)
          }
        })
    
        // 省略Lambda表达式写法 偏函数
        val newList3 = list.map{
          case (a, b) => (a, b * 2)
        }
    
        println(newList)
        println(newList2)
        println(newList3)
    
        // 偏函数
        val positiveAbs : PartialFunction[Int, Int] = {
          case a if a > 0 => a
        }
        val negativeAbs : PartialFunction[Int, Int] = {
          case a if a < 0 => -a
        }
        val zeroAbs : PartialFunction[Int, Int] = {
          case 0 => 0
        }
    
        // 声明
        def abs(x : Int) : Int = (positiveAbs orElse negativeAbs orElse zeroAbs)(x)
    
      }
    }
  • 相关阅读:
    正则元字符总表
    Request中的各种地址
    JSONP实例
    【Kindeditor编辑器】 文件上传、空间管理
    【加密算法】SHA
    【加密算法】DES
    【加密算法】3DES
    【加密算法】Base64
    【加密算法】MD5
    【加密算法】AES
  • 原文地址:https://www.cnblogs.com/mindzone/p/15030136.html
Copyright © 2011-2022 走看看