排序
4.5 Scala集合:Stream流
什么是Stream流?根据Scala文档,流是类似于列表的数据结构,只是流的元素是惰性计算机制。因此,可以拥有无限长的流!Stream(流)与List类似,但是它是延迟计算的,所以可以非常非常长。// 创建...
7.7 隐式类
在Scala中,可以通过编写隐式转换,并在需要时将它们引入作用域,从而向封闭类添加新功能。这种方法的一个主要好处是,不必扩展现有的类来添加新功能。从Scala 2.10开始,可以定义一个隐式类,...
2.1 变量
Scala有两种类型变量:可变的和不可变的。不可变意味着变量的值一旦声明就不能更改。数据不变性帮助在管理数据时实现并发控制。强烈建议不要使用可变变量。Scala作为语言中的第一类公民,高度鼓...
5.5 嵌套函数
Scala允许用户在函数中定义函数。这称为嵌套函数,其中内部函数称为局部函数。以下代码表示嵌套的函数。def bookAssignAndDisplay(bookId:Int,bookname:String) = { def getBookDetails(bookId:...
10.1 Scala异常处理
Scala的异常处理和其它语言比如Java类似,一个方法可以通过抛出异常的方法而不返回值的方式终止相关代码的运行。调用函数可以捕获这个异常作出相应的处理或者直接退出,在这种情况下,异常会传...
4.4 Scala集合:Queue和Stack
Queue队列(queue)是一种“先进先出”的数据结构。这一节我们学习如何使用Scala的不可变队列,以及执行一些常见的操作,如初始化,添加或删除元素,在队列中通过键找到元素,入队和出队。Queue...
7.6 模式匹配
在前面的章节已经讲了Scala中的简单模式匹配。模式匹配是一个表达式,因此它会导致一个值,该值可能被分配或返回。例如:44 match { case 44 => true // 如果匹配了44,则结果为true...
1.4 使用IDEA开发Scala应用程序
接下来,我们就可以开发第一个Scala程序“HelloWorld”了。本节包括如下内容:创建Scala项目创建Scala应用程序注意:确保已经安装好了JDK 8+。 创建Scala项目首先我们在IntelliJ IDEA中创建一...
5.4 闭包与函数柯里化
闭包闭包是一个函数,其返回值依赖于在该函数外声明的一个或多个变量的值。请看下面的代码:var y = 3val multiplier = (x:Int) => x * ymultiplier(2)在上面的代码中,multiplier就是一个闭...
9.4 创建数值型集合和格式化数值
创建数值型的Range、List和Array有的时候,我们需要创建一个范围、列表或数字数组,用于for循环或测试目的。这时可以使用Int类的to方法创建一个包含所需元素的范围,代码如下:// 创建数值的Ran...
4.3 Scala集合:Map
Map是一个key-value 对的集合。在其它语言中,它被称为词典、关联数组、或HashMap。这是一个根据key查找value的高效的数据结构。下面的代码段演示了怎样创建和使用一个Map:val capitals = Map(...
7.5 样例类(case class)
Scala中提供了一种特殊的类,用case class进行声明,中文也可以称作“样例类”。样例类是一种特殊的类,经过优化以用于模式匹配。样例类类似于常规类,带有一个case 修饰符的类,在构建不可变类...
1.3 使用IntelliJ IDEA集成开发环境
在本节中,我们将使用流行的IntelliJ IDEA来展示如何设置编写Scala代码的开发环境。本节包括如下内容:下载IntelliJ IDEA安装IntelliJ IDEA安装Scala插件注意:确保已经安装好了JDK 8+。 下载I...
5.3 高阶函数
什么是高阶函数?在scala中,函数可以作为参数来传递。下面的代码定义一个接受函数作为参数的函数:// 函数定义def operation(func:(Int, Int) => Int) = { val result = func(4,4) pri...
9.3 复合赋值运算与浮点值比较等
复合赋值运算Scala中没有++和--,但同样提供了复合的赋值运算符。// 变量值加1和减1var a16 = 1a16 += 1println(a16)a16 -= 1println(a16)var i = 1i *= 2println(i)i *= 2println(i)i ...
4.2 Scala集合:Set
Set 是一个不重复元素的无序集合。它不包含重复元素。此外,它不允许通过索引访问一个元素,因为它并没有索引。下面是一个Set 的例子:val fruits = Set('apple', 'orange', 'pear', 'banana')v...






