学习Scala的二维布局库和抽象类

二维布局库

作为本章运行的例子,我们将创造一个制造和渲染二维布局元素的库。每个元素 将代表一个填充字符的长方形。方便起见,库将提供名为“elem”的工厂方法来通过传入的 数据构造新的元素。例如,你将能通过工厂方法采用下面的写法创建带有字串的元素:

elem

(s: String): Element

正如你所见,元素将以名为Element的类型为模型。你将能在元素上 调用above或beside,传入第二个元素,从而得到合并了这两个的新元素。例如,下面的表达式将构建一 个包含两列,每列高度为二,的更大的元素:

val column1 = elem("hello") 

above elem("***")  
val column2 = elem("***") above elem("world")  
column1 beside column2

打印这个表达式的结果将是:

hello ***  
*** world

在对象能通过简单的部件及组合操作符的帮助被构建的系统中,布局元素是个好的 例子。本章里,我们将定义类使得元素对象能被构建自数组,行记录,以及长方形——简单 部件。我们还将定义组合操作符above和beside。这种组合操作符也经常被称为组合子:combinator,因 为它们把某些区域的元素组合成新的元素。

以组合子的方式思考问题通常是实现库的设计的好方 法:它能回报以考虑在应用域构建对象的基础方法。什么是简单对象?用什么方式能让更多有趣的对象 通过简单对象构造出来?组合子是怎么挂在一起的?什么是最通用的组合?它们满足任何有趣的规则吗 ?如果你对这些问题都有好的答案,你的库设计就在正轨上了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索布局
, 对象
, 组合
, 元素
, 操作符
, 二维数组合并
, 二维
元素组合
,以便于您获取更多的相关知识。

时间: 2024-12-06 01:11:45

学习Scala的二维布局库和抽象类的相关文章

Python二维码生成库qrcode安装和使用示例_python

二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询.社交好友互动.网络地址访问等等. 安装 Python 的二维码库 -- qrcode 由于生成 qrcode 图片需要依赖 Python 的图像库,所以需要先安装 Python 图像库 PIL(Python Imaging Library),不然会遇到 "Import

二维码的生成细节和原理[膜拜]

coolshell.cn 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等.这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下.供好学的人一同学习之. 关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/datashe

二维码的生成细节和原理_其它综合

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等.这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下.供好学的人一同学习之. 关于QR Code Specification,可参看这个PDF:http://raidenii.net/files/datasheets/misc/qr_c

二维码的生成细节和原理【转】

转自:http://coolshell.cn/articles/10590.html#jtss-tsina 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等.这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下.供好学的人一同学习之. 关于QR Code Specification,可

Android简明开发教程十二:引路蜂二维图形库简介及颜色示例

AndroidGraphics2DTutorial定义了应用的主Activity,下面就可以开始写每个具体的二维绘图示例.不同的例子将尽量采用 不同的UI控件:Menu,Content Menu,Dialog,Custom Dialog,Button等等.例子采用了引路蜂二维图形库,引路蜂二维图形 库Graphics 2D API实现了移动平台(Java ME,Blackberry,iPhone,Android,Windows Phone)上图形引擎,它能够以一种统一的方 式处理各种基本图形(S

c++-C++ 字符串 转 二维数组

问题描述 C++ 字符串 转 二维数组 CString aa = "11<225>22<225>33<225>44<000>aa<225>bb<225>cc<225>dd<000>ee<255>ff<255>hh<000>"想转为二维数组 求代码 学习 想转为二维数组 求代码 学习 解决方案 // app1.cpp : Defines the entry

Android二维码开发学习教程_Android

二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这样的,可以放心的扫,这只是我的博客主页链接啦:   关于QR码编码的二维码,我们要知道几个特点: 1. 扫描时可以从各个角度去扫,也就是旋转多少度都没关系,不信吗?下次去肯德基买单试试咯.  2. 二维码有容错率,容错率越大,生成的二维码也就越复杂,但是越不容易出错,并且,当二维码被遮挡的时候也越容易扫描出来.这里我上传的二维码容错为30%,可以从左上角开始扫描,大概扫描到下图范围的时候就可以识别出来了:  3.

街库网1亿资金注入自主二维码技术点金O2O

街库网与通联支付首发仪式圆满成功 2012年5月22日,"街库网2012年度价值趋势报告发布会暨自主二维码技术与POS终端设备研发成功上市及首轮投资签约仪式"在广州圣丰索菲特酒店成功举办,作为街库发展史上又一里程碑事件,此次发布会标志着街库在O2O领域又取得了突破式进展,其在二维码技术领域所达成的成就奠定了街库在O2O领域的核心优势,这些造诣将助其在本地消费市场开辟出巨大蓝海.街库网CEO潘求辉说:"街库作为中国O2O模式的领军者与践行者,历时六个月,耗资数百万, 终于在20

源代码-我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能。

问题描述 我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能. ①BitMatrix.java ②ByteMatrix.java ③MultiFormatWriter.java ④QRCodeWriter.java 这4个 我实在不懂 这功能,这里面哪个 是将输入字符串 变成那个0,1 那个的?用什么算法了...我这是Android工程. 谢谢了...