`

scala入门-09 scala高阶函数

阅读更多

我们做spark开发 会使用很多spark的高阶函数 所以 今天我就在linux服务上使用scala高阶函数

声明一个List集合:

List集合所在的包已经被预定义自动引入,所以此处就不需要在引入包了,这里直接使用List实例化对象,其实用List的object对象的apply方法

我们使用map函数把list中的每个值都乘以3:

x表示l中每一个元素,map对l中的每一个元素进行遍历操作,由于List中只有一种类型的元素,所以我们在执行马屁操作的时候可以省略其类型,如下所示:

List集合中只有一个参数的时候,我们可以去掉参数中的括号:

为了能保存所有代码,我还是使用IDEA吧

scala中的集合:

集合主要有List、Set、Tuple、Map等

在scala下的org.scala.collection下创建scala类CollectionOperations

在IDEA中创建一个List实例:

我们看一下List代码实现:

源码中说明了其内部是apply的方式来完成实例化的:

使用同样的方式实例化Set:

我们可也看下Set实例化对象的实现:

接下来我们在linux命令行终端中砍下集合的操作,首先看Set:

发现Set中不会存储重复的元素

下面看下Tuple的申明和使用:

tuple 访问的时候下标是从1开始的

对于Tuple而言,如果只有两个元素的时候我们还可以使用如下方式创建:

接下来我们看下Map的定义吧:

Map本身使用的是可变参数的方式,所以可以给Map赋多个值:

我们看一下Option类型,Option代表了一个可有可无的值:

Option有两个子类:Some 和None,下面看看Option的使用:

接下来我们看下filter的使用:

对集合的zip操作:

下面我们看下partition对集合的切割操作:

使用flatten的多集合进行扁平化操作:

flatMap是map和flatten操作的集合,先进行map操作后再进行flatten操作:

分享到:
评论

相关推荐

    scala-intellij-bin-2021.3.6.zip

    3. **函数式编程**:Scala支持高阶函数和闭包,可以定义匿名函数,使用map、filter、fold等函数式编程操作符。它还引入了不可变数据结构,这在并发编程中特别有用。 4. **Actor模型**:Scala内置了对Akka框架的支持...

    scala-intellij-bin-2019.2.20.zip

    - 函数式编程支持:提供高阶函数、柯里化、模式匹配等特性,便于编写简洁而富有表达力的代码。 - 面向对象编程:支持类、接口、继承、多态等面向对象概念。 - REPL(Read-Eval-Print Loop):交互式编程环境,便于...

    scala-intellij-bin-2017.2.13

    在实际开发中,Scala的特性如类型推断、模式匹配、高阶函数等,都能在IDE的辅助下得到更好的理解和应用。例如,类型推断使得开发者无需显式声明变量类型,而模式匹配则简化了数据解析和处理的过程。高阶函数则允许将...

    scala-intellij-bin-2016.3.1.zip

    在函数式编程方面,Scala提供了高阶函数、柯里化、模式匹配、不可变数据结构等特性,这些在IntelliJ IDEA的Scala插件中都有良好的支持。通过IDE,开发者可以方便地使用这些功能,提升代码的简洁性和可读性。 对于...

    scala-intellij-bin-2020.3.14.zip

    5. **Scala编程基础**: Scala语言引入了许多高级编程概念,如模式匹配、高阶函数、类型系统和 Actors 模型。使用IntelliJ IDEA的Scala插件,开发者可以方便地编写和调试这些特性,同时利用IDE提供的代码提示和错误...

    高阶函数 in Scala

    详细讲解Scala中的高阶函数部分,具体实例剖析Scala中高阶函数的意义所在,对控制抽象进行了详细的说明,参考书籍《快学Scala》、《Programming in Scala》

    scala-intellij-bin-2019.1.9.zip

    8. **智能提示**:理解Scala的特性,如模式匹配、高阶函数等,提供相应的智能提示和建议。 Spark是Apache基金会开源的大数据处理框架,它充分利用了Scala的特性,如面向对象和函数式编程,使得开发分布式应用程序变...

    Scala-2.11.1.zip

    3. **函数式编程**:Scala是函数式编程的强大平台,它提供了高阶函数、匿名函数、柯里化、尾递归优化等功能。函数在Scala中被视为一等公民,可以作为参数传递,也可以作为返回值。 4. **集合库**:Scala的集合库是...

    scala-intellij-bin-2017.3.11.zip

    - **函数式编程**:Scala支持高阶函数、闭包和不可变数据结构,使得编写并发程序更加简单。 - **面向对象编程**:提供了类、特质(trait)和继承,同时支持多态和抽象类型。 - ** Actors模型**:Scala内置对Akka ...

    scala-2.12.14.zip&scala-2.12.11.tgz Linux版本压缩包.rar

    3. **函数式编程**:支持高阶函数、柯里化、尾递归优化等特性,使得代码简洁且易于测试。 4. ** Actors模型**:提供了一种轻量级的并发机制,用于实现高效的并行和分布式计算。 5. **集合库**:Scala的集合库强大且...

    scala-2.12.10.zip

    Scala的语法优雅且富有表达力,它允许开发者使用函数式编程的特性,如高阶函数、柯里化、模式匹配和不可变数据结构,同时保留了面向对象的类、接口和继承。这使得Scala成为处理大数据、并发和分布式计算的理想选择,...

    scala-intellij-bin-2.2.0.zip

    它支持高阶函数、闭包和惰性求值。 - **模式匹配**:Scala允许通过模式匹配来分解数据结构,这是一种强大的代码简化和错误检测工具。 - **类型推断**:编译器能够自动推断变量和表达式的类型,减少了冗余的类型声明...

    scala-intellij-bin-2020.2.3.zip

    - **高阶函数**:函数可以作为参数传递,也可以作为返回值。 - **类与对象**:Scala中的类和对象是统一的,可以创建无实例的静态类(名为对象)。 - **特质(Traits)**:提供了一种实现多重继承的机制。 - **...

    scala-2.11.0-M5

    3. **高阶函数**:Scala支持函数作为一等公民,可以赋值给变量、作为参数传递、从函数返回。 4. **匿名函数和lambda表达式**:简化了函数定义,特别是在与集合API配合使用时。 5. **Actor模型**:Scala内置Akka库,...

    scala-intellij-bin-2019.2.28.zip

    3. **函数式编程**:Scala支持高阶函数和不可变数据结构,使得代码更加简洁,可读性更强,并且易于测试。 4. **面向对象编程**:Scala是面向对象的语言,支持类、对象和继承。同时,它引入了特质(trait)作为实现...

    scala-intellij-bin-2020.1.10.zip

    - 函数式编程:支持高阶函数、闭包和不可变数据结构,使得代码更简洁且易于并行处理。 - 类型推断:编译器可以根据上下文自动推断变量类型,减少了显式的类型声明。 - 丰富的集合库:提供了强大的集合操作,如map...

    scala-intellij-bin-2020.1.27.zip

    另一方面,Scala的函数式编程特性借鉴了Haskell和Lisp等语言,包括高阶函数、不可变数据结构和柯里化等功能。这些特性使得代码更加简洁,更易于测试和维护,尤其在处理并发和大数据时表现突出。 "scala-intellij-...

    scala-intellij-bin-2019.2.40.zip

    - **高阶函数**:函数可以作为一等公民,支持函数式编程风格。 - **面向对象**:结合类、特质,支持单例对象和多重继承。 - **Actor模型**:内置Akka库,支持并发和分布式计算。 2. **IntelliJ IDEA**: - **...

    scala-docs-2.11.8.rar

    3. **函数式编程**:Scala支持高阶函数、闭包和柯里化,使得函数式编程风格成为可能。 4. **面向对象编程**:Scala是面向对象的语言,支持类、对象、继承、封装和多态等概念。 5. **Actor模型**:Scala集成了Akka...

    scala-intellij-bin-2018.1.8.zip

    它支持类、对象、继承、封装等面向对象编程的基本概念,同时也引入了函数式编程的特性,如高阶函数、不可变数据结构和模式匹配。这些特性使得Scala在处理并发和大数据分析等领域表现出色。 函数式编程在Scala中的...

Global site tag (gtag.js) - Google Analytics