這篇文章主要講解了“Scala中怎么實(shí)現(xiàn)變高變寬”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Scala中怎么實(shí)現(xiàn)變高變寬”吧!
成都創(chuàng)新互聯(lián)公司十載專注成都高端網(wǎng)站建設(shè)按需制作網(wǎng)站服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)公司服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),微信平臺小程序開發(fā),軟件開發(fā),網(wǎng)絡(luò)營銷推廣,網(wǎng)絡(luò)運(yùn)營服務(wù)及企業(yè)形象設(shè)計(jì);成都創(chuàng)新互聯(lián)公司擁有眾多專業(yè)的高端網(wǎng)站制作開發(fā)團(tuán)隊(duì),資深的高端網(wǎng)頁設(shè)計(jì)團(tuán)隊(duì)及經(jīng)驗(yàn)豐富的架構(gòu)師高端網(wǎng)站策劃團(tuán)隊(duì);我們始終堅(jiān)持從客戶的角度出發(fā),為客戶量身訂造網(wǎng)絡(luò)營銷方案,解決網(wǎng)絡(luò)營銷疑問。
展示在代碼10.11中的Element的版本并不完全,因?yàn)樗辉试S客戶把不同寬度的元素堆疊在一起,或者不同高度的元素靠在一起。比方說,下面的表達(dá)式將不能正常工作,因?yàn)榻M合元素的第二行比***行要長:
new ArrayElement(Array("hello")) above new ArrayElement(Array("world!"))
與之相似的,下面的表達(dá)式也不能正常工作,因?yàn)?**個(gè)ArrayElement高度為二,而第二個(gè)的高度只是一:
new ArrayElement(Array("one", "two")) beside new ArrayElement(Array("one"))
代碼10.13展示了一個(gè)私有幫助方法,widen,能夠帶個(gè)寬度做參數(shù)并返回那個(gè)寬度的Element。結(jié)果包含了這個(gè)Element的內(nèi)容,居中,左側(cè)和右側(cè)留需帶的空格以獲得需要的寬度。代碼10.13還展示了一個(gè)類似的方法,heighten,能在豎直方向執(zhí)行同樣的功能。widen方法被above調(diào)用以確保Element堆疊在一起有同樣的寬度。類似的,heighten方法被beside調(diào)用以確??吭谝黄鸬脑鼐哂型瑯拥母叨?。有了這些改變,布局庫可以待用了。
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中怎么實(shí)現(xiàn)變高變寬”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Scala中怎么實(shí)現(xiàn)變高變寬這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!