Scala

Scala开发教程(24): 函数–尾递归

jerry Scala
在前面的文章中我们提到过可以使用递归函数来消除需要使用var变量的while循环。下面为一个使用逼近方法求解的一个递归函数表达: def approximate(guess: Double) : Double = if (isGoodEnough(guess)) guess

Scala开发教程(23): 函数–可变参数,命名参数,缺省参数

jerry Scala
前面我们介绍的函数的参数是固定的,本篇介绍Scala函数支持的可变参数列表,命名参数和参数缺省值定义。重复参数 Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表

Scala开发教程(22): 函数–闭包

jerry Scala
到目前为止我们介绍的函数都只引用到传入的参数,假如我们定义如下的函数: (x:Int) => x + more 这里我们引入一个自由变量more.它不是所定义函数的参数,而这个变量定义在函数外面,比如: var more =1

Scala开发教程(21): 函数–部分应用的函数

jerry Scala
前面例子中我们使用“_” 来代替单个的参数,实际上你也可以使用“_”来代替整个参数列表,比如说,你可以使用 print _ 来代替 println (_). someNumbers.foreach(println _) Scala编译器自动将上面代码解释成:

Scala开发教程(20): 函数–函数字面量的一些简化写法

jerry Scala
Scala提供了多种方法来简化函数字面量中多余的部分,比如前面例子中filter方法中使用的函数字面量,完整的写法如下: (x :Int ) => x +1 首先可以省略到参数的类型,Scala可以根据上下文推算出参数的类型,函

Scala开发教程(19): 函数–头等公民

jerry Scala
Scala中函数为头等公民,你不仅可以定义一个函数然后调用它,而且你可以写一个未命名的函数字面量,然后可以把它当成一个值传递到其它函数或是赋值给其它变量。下面的例子为一个简单的函数字面量(参考整数字面量,3

Scala开发教程(18): 函数–局部函数

jerry Scala
上个例子中ProcessFile使用了一个非常重要的设计原则?应用程序可以分解成多个小的函数,每个小的函数完成一个定义完好的功能。使用这程序设计风格可以使得程序员有相当数量的程序构造模块,通过这些小的构造模块的组

Scala开发教程(17): 函数-类成员函数

jerry Scala
当程序越来越大,你需要将代码细化为小的容易管理的模块。Scala支持多种方法来细化程序代码,这些方法也为有经验的程序员已经掌握的:使用函数,和Java相比,Scala提供了多种Java不支持的方法来定义函数,除了类成员

Scala开发教程(16): 没有“break”和“continue”的日子

jerry Scala
你也许注意到到目前为止,我们介绍Scala的内置的控制结构时,没有提到使用break,和continue。Scala特地没有在内置控制结构中包含break和continue是因为这两个控制结构和函数字面量有点格格不入,函数字面量我们将在

Scala开发教程(15): Match表达式

jerry Scala
Scala的Match表达式支持从多个选择中选取其一,类似其它语言中的switch语句。通常来说,Scala的matc表达式支持任意的匹配模式,这种基本模式将在后面介绍,本篇介绍类似switch用法的match表达式,也是在多个选项中选