Scala偏函数

本文探讨了Scala中偏函数的定义与使用,通过具体示例展示了如何利用偏函数进行字符串到整数的映射,并深入讲解了数组的多种操作方式,包括collect、map等方法的应用,以及编译器对特定语法糖的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package day02

object ScalaPartialFunction {
  def func(str : String): Int = {
    if(str.equals("a")) 97
    else 0
  }

  /**
    * 偏函数: PartialFunction[参数的类型,返回值类型]
   */
  def func1: PartialFunction[String, Int] = {
    case "a" => 97
    case _ => 0
  }

//  def f1: PartialFunction[Int, Int] ={
  def f1: PartialFunction[Any, Int] ={
    case i: Int => i * 10

  }

  def main(args: Array[String]): Unit = {
    println(func("a"))
    println(func1("b"))

//    var arr = Array(1,2,3,4)
    var arr = Array[Any](1,2,3,4,"hello")
    var arr1 = Array[Int](1,2,3,4)


    val collect = arr.collect(f1)
    arr1.map(x => x * 10)
    arr1.map((x: Int) => x * 10)
    arr1.map(x => x * 10)
    arr1.map{case x: Int => x*10}//编译器在编译的时候会转换成偏函数
    arr1.map(_ * 10)//_代表数组中的每一个元素



    println(collect.toBuffer)

  }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值