dd
Scala

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

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

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

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

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

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

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

jerry Scala
在前面的文章中,我们说过Scala没有内置很多控制结构,这是因为Scala赋予了程序员自己扩展控制结构的能力。Scala支持函数值(值的类型为函数,而非函数的返回值),为避免混淆,我们使用函数类型值来指代类型为函数

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

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

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

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

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

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

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

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

Scala开发教程(31): 组合和继承–定义无参数方法

jerry Scala
作为下一步,我们将向Element添加显示宽度和高度的方法,height方法返回contents里的行数。width方法返回第一行的长度,或如果元素没有行记录,返回零。 abstract class Element { def contents: Array[String

Scala开发教程(32): 组合和继承–扩展类

jerry Scala
Scala开发教程(32): 组合和继承–扩展类
我们需要能够创建新的布局元素对象,前面定义的Element为抽象类,不能直接用来创建该类的对象,因此我们需要创建Element的子类。这些子类需要实现Element类定义的抽象函数。 Scala中派生子类的方法和Java一样,也是