Scala快速入门--偏函数

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala快速入门--偏函数相关的知识,希望对你有一定的参考价值。

Scala之偏函数

偏函数partial function的定义及使用

偏函数的功能

- 偏函数不是一种函数
  - 方法:def
  - 函数:=>
- 偏函数是一种特殊的数据公式,用于实现对代码进行简化处理

偏函数的定义

- 偏函数是指代码块中没有match的一组case语句就是偏函数

- 偏函数本质是PartialFunction[A, B]的一个实例

  - A:输入参数类型
  - B:返回值类型

- 定义

  ```scala
  val pf = {
  	case 语句
  }
  ```

偏函数的使用

- 方式一:直接定义调用:定义一个方法,传递int类型数字,返回对应的汉字

  ```scala
  //普通方法定义
   def m1(numb:Int):String = {
        numb match{
          case 1 => "一"
          case 2 => "二"
          case 3 => "三"
          case _ => "其他"
        }
      }
  println(m1(2))
  ```

  ```scala
  object PfDemo {
    def main(args: Array[String]): Unit = {
    //直接定义一个偏函数
      val pf:PartialFunction[Int,String] = {
      case 1 => "一"
        case 2 => "二"
        case 3 => "三"
        case _ => "其他"
      }
    println(pf(1))
    }
  }
  ```
  • 方式二:搭配collect函数使用,collect类似于map函数,传递参数为偏函数

    //将所有的数值元素乘以10
    val array = Array(1,2,3,9,"itcast",true)
    
    //正常的写法
    array.filter(x => x.isInstanceOf[Int]).map(x => x.asInstanceOf[Int] * 10).foreach(println)
    
    val pf2:PartialFunction[Any,Int] = {
            case i:Int => i * 10
          }
          //collect方法,类似于map方法,collect方法只能传递偏函数
          array.collect(pf2).foreach(println)
    

点个赞嘛!
在这里插入图片描述

以上是关于Scala快速入门--偏函数的主要内容,如果未能解决你的问题,请参考以下文章

Scala快速入门--异常处理泛型高阶函数隐式转换

scala偏函数

scala并发编程原生线程ActorCase Class下的消息传递和偏函数实战

Scala中的偏函数

scala偏函数小栗子

Scala的偏函数可以说说吗?