排序
7.5 样例类(case class)
Scala中提供了一种特殊的类,用case class进行声明,中文也可以称作“样例类”。样例类是一种特殊的类,经过优化以用于模式匹配。样例类类似于常规类,带有一个case 修饰符的类,在构建不可变类...
7.6 模式匹配
在前面的章节已经讲了Scala中的简单模式匹配。模式匹配是一个表达式,因此它会导致一个值,该值可能被分配或返回。例如:44 match { case 44 => true // 如果匹配了44,则结果为true...
7.7 隐式类
在Scala中,可以通过编写隐式转换,并在需要时将它们引入作用域,从而向封闭类添加新功能。这种方法的一个主要好处是,不必扩展现有的类来添加新功能。从Scala 2.10开始,可以定义一个隐式类,...
7.8 枚举
在Scala中没有enum关键字。相反,Scala提供了一个Enumeration类,我们可以扩展这个类来创建枚举类型。object demo10 { // 创建枚举类型 object Stars extends Enumeration { type Stars = ...
8.1 字符串基本使用和相等性判断
在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的对象。字符串基本使用Scala中字符串的数...
8.2 字符串插值
Scala中的String构建在Java中的String之上,并添加了额外的特性,如字符串插值(字符串插值是一种将字符串内的值与变量相结合的机制)。字符串插值是根据数据创建字符串的过程。用户可以将任...
8.3 使用正则表达式处理字符串
字符串中正则表达式模式匹配通过在String上调用.r方法来创建一个scala.util.matching.Regex对象,然后在findFirstIn中使用该模式来查找一个匹配,在findAllIn中使用该模式来查找所有的匹配。 ...
8.4 转义字符、多行字符串及其他
转义字符在Scala中,也支持如下的转义字符:FF转义字符Unicod编码说明\b\u0008退格(BS),将当前位置移到前一列\t\u0009水平制表(HT),跳到下一个TAB位置\n\u000a换行(LF),将当前位置移到下一行...
9.1 数值类型简介
在Scala中,所有的数值类型都是对象,包括Byte、Char、Double、Float、Int、Long和Short。这七个数值类型继承自AnyVal trait。它们的取值范围与Java一样:数据类型描述大小最小值最大值Char无符...
9.2 数值类型间转换
字符串转数值(解析)Scala提供了将字符串解析为数值的方法。请看下面的代码:// 字符串转数值(解析)println('100'.toInt) // 100println('100'.toDouble) // 100.0println('100'.toFloat) // 100...
9.3 复合赋值运算与浮点值比较等
复合赋值运算Scala中没有++和--,但同样提供了复合的赋值运算符。// 变量值加1和减1var a16 = 1a16 += 1println(a16)a16 -= 1println(a16)var i = 1i *= 2println(i)i *= 2println(i)i ...
9.4 创建数值型集合和格式化数值
创建数值型的Range、List和Array有的时候,我们需要创建一个范围、列表或数字数组,用于for循环或测试目的。这时可以使用Int类的to方法创建一个包含所需元素的范围,代码如下:// 创建数值的Ran...
10.1 Scala异常处理
Scala的异常处理和其它语言比如Java类似,一个方法可以通过抛出异常的方法而不返回值的方式终止相关代码的运行。调用函数可以捕获这个异常作出相应的处理或者直接退出,在这种情况下,异常会传...
11.1文件IO
基本的输入输出可以用scala.io.StdIn.readLine()函数从控制台读取一行输入。如果要读取数字、Boolean或者是字符,可以用readInt、readDouble、readByte、readShort、readLong、readFloat、readB...
《Linux 101》在线讲义 #Linux 的基础教程#
本书由中国科学技术大学 Linux 用户协会的数名优秀成员协力编写,用于配套和延展“Linux 101”校内社团活动。其面向 Linux 零基础读者,从计算机操作系统和 Linux 的起源讲起,深入浅出带领读者...