首页 > 其他分享 >Scala的高阶函数

Scala的高阶函数

时间:2024-10-21 16:21:01浏览次数:9  
标签:函数 Scala println foreach 数组 var Array 高阶

高阶函数

作用:把其他函数当做参数或返回值
  def main(args: Array[String]): Unit = {
    //  定义数组,Array(1,2,3,4)
    var arr = Array(10,22,13,54)  //定义一个数组有4个元素
    // println(arr(2))            //获取第一个元素
    // 遍历
    for(i <- arr){
      println(i)
    }

map函数

作用:通过数组的每一个元素应用一个函数来构建一个新数组。
def main(args: Array[String]): Unit = {  
  var arr2 = Array(1,2,3,4,5).map(a => a*a)
  for( i <- arr2) {
    println(i)
  }
}

foreach函数

作用:通过对数组的每一个元素应用一个函数,不访问新数组。
def main(args: Array[String]): Unit = { 
   var rs = Array(1,2,3,4,5).foreach(x => {
      println(x + 2)
    })
    println(rs)
Array(1,2,3,4,5).foreach(println)
  }

filter函数

作用:对数组元素使用函数进行过滤。如果返回为true就保留。
def main(args: Array[String]): Unit = { 
   // var rs = Array(1,2,3,4,5).filter( x => true)
    var rs = Array(1,2,3,4,5).filter( x => {
    if(x % 2 == 0)
      true
    else 
      false
    })
    rs.foreach(println)
Array(1,2,3,4,5).filter( x => true).foreach(println)
}

flatten函数

将二维数组中的元素展平至单数组中。
def main(args: Array[String]): Unit = { 
    var arr = Array(
      Array(30,40,50),
      Array(70,80,90),
      Array(31,42,51),
    )

    var arr2 = arr.flatten
    arr2.foreach(println)
  // 二维数组中的最大值
  // 先转成一维数组
  var arr3 = arr.flatten
  // 再求最大值
  println(arr3.max)
}

标签:函数,Scala,println,foreach,数组,var,Array,高阶
From: https://blog.csdn.net/2301_80870395/article/details/143115881

相关文章

  • 函数的力量:掌握C语言的基石
    目录前言标准库:C语言的百宝箱头文件:库函数的藏宝图实例分析:计算平方根的sqrt函数功能描述头文件包含的重要性库函数文档的一般格式自定义函数:释放你的编程创造力函数的语法形式 函数的比喻函数的举例 简化函数定义形参和实参形参实参实参和形参的关系retur......
  • 自动执行generator生成器函数
    自动执行generator函数◼目前我们的写法有两个问题:第一,我们不能确定到底需要调用几层的Promise关系;第二,如果还有其他需要这样执行的函数,我们应该如何操作呢?◼所以,我们可以封装一个工具函数execGenerator自动执行生成器函数<script>//封装一个请求方法......
  • Scala的继承(不劳而获)
    Scala中继承的定义为在原有类的基础上定义一个新类,原有类称为父类,新类称为子类 定义:在原有的基础上定义一个新类,原有类称为父类,新类称为子类。class子类名extends父类名 {类体}【问】当子类从父类继承的方法不能满足需要时,子类需要有自己的行为,怎么办?此时使用ove......
  • Scala的多态
     从编译的角度解释Scala的多态含义:在执行期间而非编译期间确定所引用对象的类型,根据实际类型调用其方法。一个编译型语言有两种类型,分别为编译类型和运行类型。程序中定义的引用变量所指向的具体类型和通过该变量发出的方法调用在编译时不确定,而是在程序运行期间才确定的。cl......
  • Scala的sortedWith
    sortedWith:基于函数的排序,通过一个comparator函数,实现自定义排序的逻辑。sortWith方法:它使用传入的比较函数对集合进行排序。在排序过程中,根据比较函数的返回值来决定元素的顺序。如果比较函数返回true,则表示第一个参数应该排在第二个参数之前;如果返回false,则表示第一个参......
  • c语言 选票系统 函数封装
    #include<stdio.h>#include<string.h>intfeipiao=0;structxm{ charname[32]; inttickets;};//选民人员输入voidxuanmin(intlen,structxmarr[]){ inti; for(i=0;i<len;i++) { printf("请输入选民的名字:\n"); scanf("%s",arr......
  • C++静态成员变量和静态成员函数的使用
    1.静态成员变量:定义在类中的静态成员,以static关键字初始化和成员变量区别:a.可以通过类名::变量名进行调用,可访问性还是由(public,private,protected)进行限制 例如下面的mystaitcClass::_id,protected属性内容无法直接进行访问,若要直接访问需要修改为public2.静态成员函数:类似可以通过......
  • mysql窗口函数
    窗口函数SUM()统计SELECT *, SUM(duration)OVER()ASexp1, ##统计全部数据合计值 SUM(duration)OVER(PARTITIONBYuser_name)ASexp2, ##分组求和,不同数据相同分组会展示相同的累积值 SUM(duration)OVER(ORDERBY`date`ASC)ASexp3, ##全部数据累积和,......
  • Scala的抽象类
    1.定义:抽象类是一个不能被实例化的类。无论在Scala中还是Java中都不可以直接创建对象,抽象类通过子类创建对象。//抽象类:制定标准,不要求去具体实现//abstract:抽象abstractclassAICar(){varbrand=""//自动驾驶:不要去具体实现功能defautoRun}//抽象类......
  • Scala的内部类
    Scala的内部类是指定义在类或对象内部的类classCar{privatevarspeed=0//私有属性varcolor="black"defrun():Unit={println(s"runwith${speed}")}//内部类:写在类里面的类//1.定义一个类class......