• Scala 匿名函数与参数类型推断(简写)


      没有名字的函数就是匿名函数,如下map中传递就是一段匿名函数

    list.map((n: Int) => n + 1)
    

      参数类型推断案例1,单个参数

    ①因为map中函数的参数类型是可以推断出来的,所以可以省略类型。所谓可以推断,list的泛型和map参数要求的泛型已经确定。

    list.map((n) => n + 1)
    

    ②因为只有一个参数,所以省略小括号

    list.map(n => n + 1)
    

    ③因为这个参数在表达式右边只出现了一次,所以可以用下划线_代替

    list.map(_ + 1)
    

      参数类型推断案例2,多个参数。

      当有多个参数且每个参数在表达式右边也只出现一次时,也可以用下划线简写,但是下划线的顺序与左边参数的顺序一致。

    def main(args: Array[String]): Unit = {
      val list = List(1, 2, 3, 4, 5)
    
      val res1 = list.reduce((n1, n2) => n1 - n2)
      val res2 = list.reduce(_ - _)
      println(res1) // -13
      println(res2) // -13
    
      val res3 = list.reduce((n1, n2) => n2 - n1)
      println(res3) // 3
    
    }
    

      

  • 相关阅读:
    反悔贪心 学习笔记
    「CF901C」Bipartite Segments 题解
    「HEOI2015」公约数数列 题解
    拓展欧拉定理
    莫比乌斯反演题目选做
    八月水题录
    chapt15、使用虚拟内存
    chapt16、线程堆栈
    chapt14、探索虚拟内存
    get files version by vbs
  • 原文地址:https://www.cnblogs.com/noyouth/p/12818054.html
Copyright © 2020-2023  润新知