Scala中怎么实现变高变宽
发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,这篇文章主要讲解了"Scala中怎么实现变高变宽",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Scala中怎么实现变高变宽"吧!展示在代码10.11中
千家信息网最后更新 2024年10月04日Scala中怎么实现变高变宽
这篇文章主要讲解了"Scala中怎么实现变高变宽",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Scala中怎么实现变高变宽"吧!
展示在代码10.11中的Element的版本并不完全,因为他不允许客户把不同宽度的元素堆叠在一起,或者不同高度的元素靠在一起。比方说,下面的表达式将不能正常工作,因为组合元素的第二行比***行要长:
new ArrayElement(Array("hello")) above new ArrayElement(Array("world!"))
与之相似的,下面的表达式也不能正常工作,因为***个ArrayElement高度为二,而第二个的高度只是一:
new ArrayElement(Array("one", "two")) beside new ArrayElement(Array("one"))
代码10.13展示了一个私有帮助方法,widen,能够带个宽度做参数并返回那个宽度的Element。结果包含了这个Element的内容,居中,左侧和右侧留需带的空格以获得需要的宽度。代码10.13还展示了一个类似的方法,heighten,能在竖直方向执行同样的功能。widen方法被above调用以确保Element堆叠在一起有同样的宽度。类似的,heighten方法被beside调用以确保靠在一起的元素具有同样的高度。有了这些改变,布局库可以待用了。
import Element.elem abstract class Element { def contents: Array[String] def width: Int = contents(0).length def height: Int = contents.length def above(that: Element): Element = { val this1 = this widen that.width val that1 = that widen this.width elem(this1.contents ++ that1.contents) } def beside(that: Element): Element = { val this1 = this heighten that.height val that1 = that heighten this.height elem( for ((line1, line2) < - this1.contents zip that1.contents) yield line1 + line2 ) } def widen(w: Int): Element = if (w < = width) this else { val left = elem(' ', (w - width) / 2, height) var right = elem(' ', w - width - left.width, height) left beside this beside right } def heighten(h: Int): Element = if (h < = height) this else { val top = elem(' ', width, (h - height) / 2) var bot = elem(' ', width, h - height - top.height) top above this above bot } override def toString = contents mkString "\n" }
代码 10.13 有了widen和heighten方法的Element
感谢各位的阅读,以上就是"Scala中怎么实现变高变宽"的内容了,经过本文的学习后,相信大家对Scala中怎么实现变高变宽这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
宽度
方法
代码
元素
高度
内容
学习
不同
用以
表达式
面的
工作
相似
功能
参数
只是
右侧
客户
就是
布局
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库响应速度应该为多少
全市网络安全等级培训
易语言合并数据库源码
杭州商易网络技术
联想服务器在外管理密码
数据库怎么保留查询的记录
微槽服务器降温技术
server系统安装数据库
数据库pdf图标
数据库查询的类型
莱州朗东网络技术有限公司
360周鸿祎网络安全大会
在博鳌论坛 网络安全
武汉超静音服务器
软件开发增值税税收风险
怎么链接到服务器
hp服务器网卡绑定
省局税务服务器总是卡
离线基站数据库 300万
网络技术工程师华为认证
教师掌握网络技术的重要性
邯郸程序软件开发定制
交建云商劳务分包商数据库
塔式服务器维保费用
安卓如何修改定位软件开发
db2数据库培训 北京
北京5g服务器配套机柜虚拟主机
移动网络技术就业方向
原神怎么同时下俩个服务器
数据库如何把表备份