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)
    
      }
    }
  • 相关阅读:
    Python日期与时间
    Python文章导航
    Python Tuple元组的操作说明
    Python List列表的操作说明
    Python数字类型及数学运算
    用Python实现一个简单的猜数字游戏
    Python基础语法
    设计模式的六大原则
    设计模式
    设计模式
  • 原文地址:https://www.cnblogs.com/mindzone/p/15030136.html
Copyright © 2011-2022 走看看