千家信息网

Scala中怎么实现变高变宽

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"Scala中怎么实现变高变宽",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Scala中怎么实现变高变宽"吧!展示在代码10.11中
千家信息网最后更新 2026年11月03日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安全错误 数据库的锁怎样保障安全 云南咖啡 互联网科技公司简介 互联网金融监管科技数据 互联网科技深圳 上海挚品互联网科技 睿民互联网科技 互联网科技公司的市场部门 广州恒生互联网科技有限 成都铂石互联网科技做什么的 乌苏新华互联网科技做什么的 允成互联网科技有限公司融资 互联网新科技动漫ppt素材 电子商务与互联网科技的关系 35岁以上互联网科技行业 山东大美朱楼互联网科技有限公司 互联网时代科技型公司的机会 互联网高科技行业有哪些企业 深圳互联网科技园地址 陕西彩京云互联网科技有限公司 河南商务圈互联网科技有限公司 博彦科技互联网金融 互联网科技行业发展 互联网巨头科技公司 上海万想互联网科技 互联网科技股有哪些 江苏南京365互联网科技 中国航天科技大学国际工业互联网 黑科技 体验场景 互联网大会 互联网科技手机排行榜 北京天晋互联网科技有限公司
0