Scala中怎么实现变高变宽
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要讲解了"Scala中怎么实现变高变宽",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Scala中怎么实现变高变宽"吧!展示在代码10.11中
千家信息网最后更新 2025年11月16日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安全错误
数据库的锁怎样保障安全
网络技术电脑需求
网络技术咨询费是什么意思
数据库的回滚与重写
交通银行总行软件开发年薪
汉中网络安全周
小学一年级网络安全宣传周
我的世界服务器能配多少人
浙大网络安全学院团队
香港服务器选择
国外三大英文数据库
网易版好玩的服务器有32k
传说对决中服务器未影响
中职学校网络安全培训
数据库调整落实方案
山东浪潮服务器代理商联系方式
5g网络安全思维
农业银行软件开发中心校园
尚学堂北京软件开发科技公司
网络安全制度如何制定
百度网盘 备份电脑数据库
免代码 数据库开发
手机4g网络技术原理
网络技术网站导航
ftp服务器 安全吗
单服务器 虚拟化
网络安全 从我做起稿件
php打开网页数据库发生错误
cnki将数据库文献分为
网络安全防诈骗调查问卷
上海苹果软件开发