• 【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)
    
      }
    }
  • 相关阅读:
    找水王
    用户体验评价
    人件集阅读笔记01
    第十四周学习进度
    第十三周学习进度
    第十二周学习进度
    第十一周学习进度
    梦断代码阅读笔记03
    团队项目-第一阶段冲刺-10
    Shell按行读取文件的3种方法
  • 原文地址:https://www.cnblogs.com/mindzone/p/15030136.html
Copyright © 2020-2023  润新知