scala函数和闭包

方法:

  作为某个对象的成员,这种函数被称为方法

 

本地函数

  你可以把函数定义在另一个函数中,就好像本地变量,这种本地函数仅在包含它的代码块中可见

 

函数是第一类值

  scala拥有第一类函数,你不仅可以定义函数和调用它们,还可以把函数写成没有名字的文本,并把它们像值那样传递

  函数文本被编译进一个类,类在运行期实例化的时候是一个函数值

  一次函数文本和值的区别在于函数文本存在于源代码,而函数值存在于运行期对象

  (x: Int) => x + 1

  =>指明这个函数把左边的东西(任何整数x)转变成右边的东西(x + 1)

  函数值是对象,可以把它们存入变量,也是函数,可以使用通常的括号函数调用写法调用它们

 

函数文本的短格式

  scala> someNumbers.filter((x: Int) => x > 0)

  scala> someNumbers.filter((x) => x > 0)

  scala> someNumbers.filter(x => x > 0)

 

占位符语法

  可以把下划线当做一个或更多参数的占位符

  scala> someNumbers.filter(_ > 0)

  这个空白在每次函数被调用的时候用函数的参数填入

 

偏应用函数

  下划线还能替换整个参数列表

 

闭包

  (x: Int) => x + more

  more是个自由变量,

 

重复参数

  指明函数的最后一个参数可以是重复的,

  scala> def echo(args: String*) = for (arg <- args) println(arg)

 

尾递归

posted @ 2014-05-21 17:52  褐色键盘  阅读(219)  评论(0)    收藏  举报