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安全错误
数据库的锁怎样保障安全
光遇服务器有多差
山东省计算机网络技术职业学校
服务器设置高级配置
数据库实验数据
如何查看服务器端口进来的数据
宁波网络安全宣传工作
江苏综合软件开发包括哪些
魔域显示与服务器断开连接
软件开发与安全关系
乡村网络安全宣传图片
在vfp中关闭所有数据库的命令
网络安全外部人员访问审批制度
最新的软件开发流程
网吧服务器的安装文案
国内程序员写的数据库超小
网络安全奖学金获奖提名人数
数据库技术与应用答案Sql
网络安全手抄报 模板
房源库网络技术有限公司
2b2t服务器的版本号是多少
网络安全安防公司
制造执行系统软件开发服务商
远程管理阿里云服务器
国际网络安全条例
云服务器性能指标
无锡银联软件开发问答知识
金融科技大数据与互联网
数据库中的trger
免费文档管理服务器
网络安全 国外