函数和闭包
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笔记,
该文档详细的讲述了Scala的基础操作方法和高级使用方法
scala 学习笔记 方法 函数 类 对象 特质 推断 注解 编译 隐式转换 尾递归 元组 列表
[Scala学习笔记-中文资料] 从java角度看Scala
ScalaOverview.pdf ScalaTutorial.pdf ProgrammingInScala.pdf(这本是书) 博文链接:https://dogstar.iteye.com/blog/182673
scala学习
Scala-学习资料-mht.rar。Scala学习资料 mht网页格式。
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...
Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。
scala-learn:scala学习笔记
结合实例讲解scala语法,代码可复制,有注释,有重点。一共5份PDF文档,轻松入门也可进阶。
Scala学习资源Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久...
scala学习视频资料以及讲义,从基础的环境配置开始讲起,以及后面具体案例开发.适合新手学习,还有具体讲义对照复习查看。
刚接触Scala,所以并不是很习惯这种函数式编程风格,就从现在的第一篇笔记开始记录这个学习过程啦!笔记来源于《Scala编程》的学习。 从文本读取文本行 初步目标: 构建一个脚本从文本读取文本行,并将它们打印出来...
最新版本的scala-2.11.8与Spark2.1.0环境搭建
scala学习笔记,适合初学scala的人使用,通俗易懂,小案例适合练手