Scala开发教程(30): 组合和继承–抽象类

jerry Scala
上一篇我们定义了我们需要解决的问题,我们首要的任务是定义Element类型,这个类型用来表示一个布局元素。由于每个元素为一个具有二维矩形形状的字符串,因此我们理所当然的可以定义个成员变量contents,用来表示这个

Scala开发教程(29): 组合和继承–概述

jerry Scala
在前面我们介绍了Scala面向对象的一些基本概念 Scala开发教程(4): 类和对象 (一) Scala开发教程(5): 类和对象 (二) Scala开发教程(8): 类和对象 (三) Scala开发教程(9): 类和对象 (四) Scala开发教程(10): 类和对象

Scala开发教程(28): 传名参数

jerry Scala
上篇我们使用柯里化函数定义一个控制机构withPrintWriter ,它使用时语法调用有如Scala内置的控制结构: val file = new File("date.txt") withPrintWriter(file){ writer => writer.prin...
阅读全文

Scala开发教程(27): 创建新的控制结构

jerry Scala
对于支持函数作为“头等公民”的语言,你可以有效的创建新的控制结构即使该语言语法上固定的。你所要做的事创建一个方法,该方法使用函数类型作为参数。 比如: 下面为一个“双倍”的控制结构,这个“双倍”控制结构

Scala开发教程(25): 减低代码重复

jerry Scala
在前面的文章中,我们说过Scala没有内置很多控制结构,这是因为Scala赋予了程序员自己扩展控制结构的能力。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可以根据上下文推算出参数的类型,函