中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scala的二維布局庫和抽象類怎么使用

發布時間:2021-12-09 17:34:47 來源:億速云 閱讀:136 作者:iii 欄目:編程語言

本篇內容主要講解“Scala的二維布局庫和抽象類怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Scala的二維布局庫和抽象類怎么使用”吧!

二維布局庫

創造一個制造和渲染二維布局元素的庫,每個元素將代表一個填充字符的長方形。方便起見,庫將提供名為“elem”的工廠方法來通過傳入的數據構造新的元素。例如,你將能通過工廠方法采用下面的寫法創建帶有字串的元素:

elem(s: String): Element

正如你所見,元素將以名為Element的類型為模型。你將能在元素上調用above或beside,傳入第二個元素,從而得到合并了這兩個的新元素。例如,下面的表達式將構建一個包含兩列,每列高度為二,的更大的元素:

val column1 = elem("hello") above elem("***")  val column2 = elem("***") above elem("world")  column1 beside column2

打印這個表達式的結果將是:

hello ***  *** world

在對象能通過簡單的部件及組合操作符的幫助被構建的系統中,布局元素是個好的例子。本章里,我們將定義類使得元素對象能被構建自數組,行記錄,以及長方形——簡單部件。我們還將定義組合操作符above和beside。這種組合操作符也經常被稱為組合子:combinator,因為它們把某些區域的元素組合成新的元素。

以組合子的方式思考問題通常是實現庫的設計的好方法:它能回報以考慮在應用域構建對象的基礎方法。什么是簡單對象?用什么方式能讓更多有趣的對象通過簡單對象構造出來?組合子是怎么掛在一起的?什么是最通用的組合?它們滿足任何有趣的規則嗎?如果你對這些問題都有好的答案,你的庫設計就在正軌上了。

抽象類

我們的***個任務就是定義代表布局元素的類型Element。由于元素是二維的字符長方形,包括成員,指向布局元素內容的contents,是合情合理的。內容可以被表達成字串數組,這里每個字串代表一行。因此,contents返回的結果類型就是Array[String]。代碼10.1展示了它看起來的樣子。

這個類里,contents被聲明為沒有實現的方法。換句話說,方法是類Element的抽象:abstract成員。具有抽象成員的類本身必須被聲明為抽象的,只要在class關鍵字之前加上abstract修飾符即可:

abstract class Element {  def contents: Array[String]  }

代碼 10.1 定義抽象方法和類

abstract class Element ...

abstract修飾符說明類或許有沒實現的抽象成員。結果,你不能實例化抽象類。如果你嘗試這么做,你會得到編譯器錯誤:

scala> new Element  < console>:5: error: class Element is abstract;   cannot be instantiated   new Element   ?

請注意類Element的contents方法并沒帶有abstract修飾符。如果方法沒有實現(也就是說,沒有等號或方法體),它就是抽象的。不像Java,方法的聲明中不需要(或允許)抽象修飾符。擁有實現的方法被稱為具體的:concrete

到此,相信大家對“Scala的二維布局庫和抽象類怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

儋州市| 兴义市| 开化县| 五指山市| 达孜县| 庆云县| 桓仁| 永昌县| 望江县| 英吉沙县| 武平县| 丁青县| 明光市| 化州市| 天镇县| 安化县| 南溪县| 鄯善县| 金塔县| 丰台区| 台北县| 韩城市| 蒙山县| 象州县| 新郑市| 玉林市| 霍山县| 包头市| 永德县| 宁德市| 正宁县| 长沙市| 汽车| 新化县| 诸暨市| 含山县| 鄂温| 新干县| 江口县| 阿巴嘎旗| 嘉禾县|