`

scala学习笔记4

 
阅读更多

函数和闭包
1.定义函数最通用的方法是作为某个对象的成员,这种函数被称为方法。
2.函数式编程风格:程序应该被解构成若干小的函数,每块实现一个定义完备的任务,组装成复杂的事物
3.局部函数可以定义在另外一个函数的内部,并且局部函数可以访问外部函数的属性
4.=>指明函数左边的东西转化成右边的东西
5.什么叫闭包:
  一直一个函数f(x) = x + i ,让你求f(3) = 3 + i。
  分析:要得到最终的函数值,你必须知道i的值。i称作开放项。
     若上文中定义了 int i = 1 ,则可以得到f(3) = 3 + 1 = 4.
     即函数值若想捕获i的值,这一过程被理解为做对函数执行“关闭”操作,所以叫闭包
6.scala的函数是头等函数

package com.scala.stu
import scala.io.Source
/**
 * 函数和闭包
 */
object t_007 {
  
  def main(args: Array[String]): Unit = {
   /*
   * =>指明函数左边的东西转化成右边的东西
   */
  var increase = (x: Int) =>  {//{}代表代码块
    println("this is one line")
    x + 1
  }
  println(increase(10))//变量可以通过这种形式进行重新赋值,因为任何函数值都是扩展了若干的function的
  
  
  var someNumbers = List(-11,-10,-5,0,5,10)
  //filter,这个方法选择集合类型里可以通过用户提供的测试的元素
  someNumbers = someNumbers.filter { x =>x > 0 }
  //_是占位符
  someNumbers = someNumbers.filter { _ > 0 }
  //foreach,每个集合类都能用的foreach方法,定义在特质Iterable中他是list,set,array,map的共有的超特质
  someNumbers.foreach { x => print(x+" ") }
  someNumbers.foreach { println _}
  //_+_ 将扩展成带两个参数的函数字面量,多个下划线代表多个参数
  //只有在需要函数类型的地方,scala才允许你省略这个仅用的_
  val f = (_: Int) + (_: Int)
  println(f(1,2))
  }
  
  //本地函数
  def processFile(filename: String , width: Int) {
    
      def processLine(line: String){
        println(filename + " :" + line.trim)
    }
      /*
       * def processLine(filename: String,width: Int , line: String){
        println(filename + " :" + line.trim)
   			 }
       */
    val source = Source.fromFile(filename)
    for (line <- source.getLines)//getLines返回枚举类型
    processLine(line)
  }
  
  //柯里化
  def curr(x: Int)(y: Int) = x+y
  def first(x:Int) = (y:Int) =>x + y
  
  
  
  
}

 

分享到:
评论

相关推荐

    Scala学习笔记,大全笔记

    Scala学习笔记,大全笔记

    Scala学习笔记(全)

    ### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...

    scala学习笔记整理

    在"scala学习笔记整理"中,我们可以深入探讨以下关键知识点: 1. **基础语法**:Scala的基础语法与Java有相似之处,但也有很多独特的特点。例如,它支持变量的不可变性(immutability),使用`val`声明常量,`var`...

    Scala学习笔记

    ### Scala学习笔记关键知识点 #### 1. “均码”哲学与并发编程 - **“均码”哲学**: 指的是Scala设计时遵循的一种设计理念,即尽量保持语言的统一性和简洁性,使得不同的功能和特性能够以一种相似的方式进行处理。...

    [Scala学习笔记-中文资料]从java角度看Scala

    [Scala学习笔记-中文资料] 从java角度看Scala

    scala学习笔记1

    ScalaOverview.pdf ScalaTutorial.pdf ProgrammingInScala.pdf(这本是书) 博文链接:https://dogstar.iteye.com/blog/182673

    scala学习资料

    4. 集合库:Scala的集合库设计精良,包含各种高效的数据结构,如List、Set、Map等。这些集合不仅支持传统的OOP操作,还提供了丰富的函数式API,如map、filter、fold等,方便进行数据处理。 5. 特性与模式匹配:...

    Scala-学习资料-mht.rar

    4. 并发编程:Scala提供了Actor模型,这是一种轻量级的并发机制,使得处理并发问题变得更加简单和高效。 5. Akka框架:Akka是用Scala编写的开源框架,用于构建高度可扩展、容错的应用程序,它充分利用了Scala的...

    scala讲解笔记 入门及进阶 PDF文档1-5

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理、分布式计算和高性能应用开发。...每个文档都配有实例和注释,便于理解和实践,是Scala学习者宝贵的资源。

    scala学习笔记

    以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...

    scala.rar学习笔记和心得

    Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...

    学习scala好的项目

    在"scala-study"这个文件夹中,可能包含的子文件有练习代码、笔记、教程文档等,这些都是学习过程中的宝贵资料。通过这些资源,初学者可以逐步了解如何使用Scala编写Spark程序,包括如何创建SparkSession、加载数据...

    scala.rar基础知识,笔记很好的详细

    Scala学习资源Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久...

    读书笔记:快速入手的Scala基础语法学习笔记.zip

    读书笔记:快速入手的Scala基础语法学习笔记

    scala-learn:scala学习笔记

    本教程“scala-learn:scala学习笔记”旨在帮助初学者深入理解Scala的基础知识,同时也为有经验的程序员提供了一个复习和提升的平台。 1. **基础语法与数据类型** Scala的基础语法简洁而强大,包括变量声明(val和...

    scala的操作笔记

    ### Scala的操作笔记 #### 一、课程目标与学习路径 本课程旨在通过三个阶段的目标来逐步深入学习Scala语言,最终能够灵活运用Scala进行Spark程序的开发,并具备阅读Spark内核源码的能力。 - **初级目标**:掌握...

Global site tag (gtag.js) - Google Analytics