![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Scala
病妖
这个作者很懒,什么都没留下…
展开
-
Scala中的组合与继承----建立一个创建和渲染二维布局元素的库(实例)
一、关于抽象类 在这个实例中,我们的第一项任务就是定义代表布局元素的类型Element。因为元素是二维的字符矩形,所以顺理成章应包含一个成员contents指向布局元素的内容。内容可以由字符串数组表示,这里每个字符串代表一行。因此,contents返回的结果类型为Array[String]。如: abstract class Element{ def contents:Array[String] } 这个类里,contents被声明为没有实现的方法。换句话说,这个方法是Element类的抽象成员。具有抽原创 2020-08-12 20:21:00 · 182 阅读 · 0 评论 -
函数式对象详细分析(分子分母计算加减乘除实例)
一、创建Rational 在着手设计Rational类之前应该先考虑客户程序员将如何创建新的Rational对象。假设我们已经决定让Rational对象是不可变的,我们将需要那个客户在创建实例时提供所有有需要的数据。(在接下来的分析中,是分子和分母)。因此,我们可以这么设计: calss Rational(n:Int,d:Int) 首先应该注意到的是如果类没有主体,就不需要指定一对空的花括号 。在类名Rational之后的括号里的n和d,被称为类参数。scala编译器会收集这两个类参数并创造出带同样的两原创 2020-08-11 10:54:57 · 1269 阅读 · 0 评论 -
Scala的三个位移方法
一、左移(<<) 示例:1<<2 res0:Int = 4 解释: 1<<2,二进制的1是0001指左操作数即0001被向左移动2个位置(填入0),产生结果是二进制的0000 0000 0000 0000 0000 0000 0000 0100,即4. 二、右移(>>) 示例:-1>>31 res1:Int = -1 解释 二进制的-1是1111 1111 1111 1111 1111 1111 1111 1111。-1>>31,-1原创 2020-08-10 14:11:05 · 851 阅读 · 0 评论 -
使用Scala从文件里读取文本行
代码呈现 import scala.io.Source object Test { def main(args: Array[String]): Unit = { def widthOfLength(s: String) = s.length.toString.length val filePath = "文件路径" if (filePath.length > 0) { val lines = Source.fromFile(filePath, "UTF原创 2020-08-10 11:41:17 · 1848 阅读 · 2 评论 -
使用集(set)和映射(map)(绝对新手讲解)
一、概述 Scala的集合(collection)库区分为可变类型和不可变类型。例如,array具有可变性,而list保持不变。对于set和map来说,Scala同样有可变和不可变的,不过并非各提供两种类型,而是通过类继承的差别把可变性差异蕴含其中。 二、set的基本构造方法 object Test{ def main(args: Array[String]): Unit = { var jetSet = Set("baba","haha") jetSet += "Lear" p原创 2020-08-10 10:31:11 · 142 阅读 · 0 评论 -
Scala中如何使用元组
一、概述 元组是很有用的容器对象。与列表一样,元组是不可变的;但与列表不同,元组可以包含不同类型的元素。比如列表只能写成List[Int]或List[String],但元组可以同时拥有Int和String。元组使用场景很多,比方说,如果需要在方法里返回多个对象。Java里的做法是创建JavaBean以包含多个返回值,Scala里可以仅返回元组。而且做起来也很简单:只要把元组实例化需要的对象放在括号里,并用逗号分隔即可。元组实例化之后,可以用点号、下划线和基于1的索引访问其中的元素。 二、访问元组的元素 示例原创 2020-08-10 09:55:53 · 429 阅读 · 0 评论