本文主要解释如何使用Scala的2D布局库和抽象类。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何使用Scala的2D布局库和抽象类”!
二维布局库
创建一个用于制造和渲染2D布局元素的库,每个元素将代表一个用字符填充的矩形。为了方便起见,该库将提供一个名为“elem”的工厂方法来从传入的数据中构造新元素。例如,您将能够通过工厂方法以下列方式创建带有字符串的元素:
elem(s 3360 string): Element如您所见,该元素将由名为Element的类型建模。您将能够在元素的上面或旁边调用,传入第二个元素,并获得一个结合了这两个元素的新元素。例如,以下表达式将构建一个包含两列的较大元素,每列的高度为两列:
Valcolumn1=Elem ('hello ')上方Elem ('* *') Valcolumn2=Elem ('* * ')上方Elem ('world ')栏1旁边栏2打印此表达式的结果将是:
Hello * * * * *世界布局元素是一个很好的例子,在这个系统中,对象可以通过简单的组件和组合运算符来构建。在本章中,我们将定义类,以便元素对象可以由数组、行记录和矩形3354简单部分构建。我们还将定义上面和旁边的组合运算符。这种组合运算符也经常被称为combinator,因为它们将某些区域的元素组合成新的元素。
用组合器的方式思考通常是实现库设计的好方法:它可以回归到考虑应用领域中构建对象的基本方法。什么是简单对象?用什么方法可以用简单的物体构造出更有趣的物体?这些组合是如何组合在一起的?最常见的组合是什么?他们符合什么有趣的规则吗?如果你对这些问题有很好的答案,你的图书馆设计就会走上正轨。
抽象类
我们的* * *任务是定义代表布局元素的元素类型。因为元素是二维字符矩形,包括成员,所以指向布局元素的内容是合理的。内容可以表示为字符串数组,其中每个字符串代表一条线。因此,内容返回的结果类型是数组[字符串]。代码10.1展示了它的样子。
在这个类中,内容被声明为未实现的方法。换句话说,方法是类Element的抽象:抽象成员。具有抽象成员的类必须通过在class关键字前添加抽象修饰符来声明为抽象的:
抽象类元素{ DEFContents : array[string]}代码10.1定义了抽象方法和类。
抽象类元素.抽象修饰符指示类可能有未实现的抽象成员。因此,您不能实例化抽象类。如果您尝试这样做,您将会得到编译器错误:
scalanewelementconsole :5: error : classelementabstract;请注意,类元素的contents方法没有抽象修饰符。如果一个方法没有实现(即没有等号或方法体),那么它就是抽象的。与Java不同,抽象修饰符在方法声明中不是必需的(或允许的)。你拥有的方法叫做具体。
至此,相信大家对“如何使用Scala的2D布局库和抽象类”有了更深的理解,下面就来做一些实际的工作吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/140955.html