Scala 第3页
Scala 教程 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。 Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。 谁适合阅读本教程? 本教程适合想从零开始学习 Scala 编程语言的开发人员。当然本教程也会对一些模块进行深入..
7.2 单例对象和伴生对象-知趣

7.2 单例对象和伴生对象

 单例对象在面向对象编程中一个常见的设计模式是定义一个只能被实例化一次的类。一个只能被实例化一次的类叫做“单例(singleton)”。Scala不提供任何静态修饰符,这与构建纯面向对象语言的设计...
7.3 类的继承和多态-知趣

7.3 类的继承和多态

类的继承继承是一种描述类与类之间的关系,反映的是“is a”这种关系。子类通过关键字extends继承了父类的字段和方法,同时可以自定义相应的字段和方法。需要注意的是,如果父类中的成员,包括...
7.4 特质 - Trait-知趣

7.4 特质 – Trait

Scala做了一些面向对象的创新,其中之一就是特质(Trait)。trait类似于带有部分实现的抽象类。一个特质(trait)代表一个接口,由相关类的层级所支持。它是一个抽象机制,帮助开发模块化、可重用...
7.5 样例类(case class)-知趣

7.5 样例类(case class)

Scala中提供了一种特殊的类,用case class进行声明,中文也可以称作“样例类”。样例类是一种特殊的类,经过优化以用于模式匹配。样例类类似于常规类,带有一个case 修饰符的类,在构建不可变类...
7.6 模式匹配-知趣

7.6 模式匹配

在前面的章节已经讲了Scala中的简单模式匹配。模式匹配是一个表达式,因此它会导致一个值,该值可能被分配或返回。例如:44 match {   case 44 => true     // 如果匹配了44,则结果为true...
7.7 隐式类-知趣

7.7 隐式类

在Scala中,可以通过编写隐式转换,并在需要时将它们引入作用域,从而向封闭类添加新功能。这种方法的一个主要好处是,不必扩展现有的类来添加新功能。从Scala 2.10开始,可以定义一个隐式类,...
7.8 枚举-知趣

7.8 枚举

在Scala中没有enum关键字。相反,Scala提供了一个Enumeration类,我们可以扩展这个类来创建枚举类型。object demo10 {​ // 创建枚举类型 object Stars extends Enumeration {   type Stars = ...
8.1 字符串基本使用和相等性判断-知趣

8.1 字符串基本使用和相等性判断

在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的对象。字符串基本使用Scala中字符串的数...
8.2 字符串插值-知趣

8.2 字符串插值

 Scala中的String构建在Java中的String之上,并添加了额外的特性,如字符串插值(字符串插值是一种将字符串内的值与变量相结合的机制)。字符串插值是根据数据创建字符串的过程。用户可以将任...
8.3 使用正则表达式处理字符串-知趣

8.3 使用正则表达式处理字符串

字符串中正则表达式模式匹配通过在String上调用.r方法来创建一个scala.util.matching.Regex对象,然后在findFirstIn中使用该模式来查找一个匹配,在findAllIn中使用该模式来查找所有的匹配。  ...
8.4 转义字符、多行字符串及其他-知趣

8.4 转义字符、多行字符串及其他

转义字符在Scala中,也支持如下的转义字符:FF转义字符Unicod编码说明\b\u0008退格(BS),将当前位置移到前一列\t\u0009水平制表(HT),跳到下一个TAB位置\n\u000a换行(LF),将当前位置移到下一行...
9.1 数值类型简介-知趣

9.1 数值类型简介

在Scala中,所有的数值类型都是对象,包括Byte、Char、Double、Float、Int、Long和Short。这七个数值类型继承自AnyVal trait。它们的取值范围与Java一样:数据类型描述大小最小值最大值Char无符...
9.2 数值类型间转换-知趣

9.2 数值类型间转换

字符串转数值(解析)Scala提供了将字符串解析为数值的方法。请看下面的代码:// 字符串转数值(解析)println('100'.toInt) // 100println('100'.toDouble) // 100.0println('100'.toFloat) // 100...
9.3 复合赋值运算与浮点值比较等-知趣

9.3 复合赋值运算与浮点值比较等

复合赋值运算Scala中没有++和--,但同样提供了复合的赋值运算符。// 变量值加1和减1var a16 = 1a16 += 1println(a16)​a16 -= 1println(a16)​var i = 1i *= 2println(i)​i *= 2println(i)​i ...
9.4 创建数值型集合和格式化数值-知趣

9.4 创建数值型集合和格式化数值

创建数值型的Range、List和Array有的时候,我们需要创建一个范围、列表或数字数组,用于for循环或测试目的。这时可以使用Int类的to方法创建一个包含所需元素的范围,代码如下:// 创建数值的Ran...
10.1 Scala异常处理-知趣

10.1 Scala异常处理

Scala的异常处理和其它语言比如Java类似,一个方法可以通过抛出异常的方法而不返回值的方式终止相关代码的运行。调用函数可以捕获这个异常作出相应的处理或者直接退出,在这种情况下,异常会传...