泛型:通俗的講,比如需要定義一個函數(shù),函數(shù)的參數(shù)可以接受任意類型。我們不可能一一列舉所有的參數(shù)類型重載(overload)函數(shù)。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供寧晉網(wǎng)站建設(shè)、寧晉做網(wǎng)站、寧晉網(wǎng)站設(shè)計、寧晉網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、寧晉企業(yè)網(wǎng)站模板建站服務(wù),十載寧晉做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。那么程序引入了一個稱之為泛型的東西,這個類型可以代表任意的數(shù)據(jù)類型。
例如List,在創(chuàng)建List時,可以傳入×××、字符串、浮點數(shù)等等任意類型。那是因為List在類定義時引用了泛型。
List的定義
sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A, List] with LinearSeqOptimized[A, List[A]] with Serializable
其中A就是類型,當(dāng)然A你可以寫成任意的標(biāo)識符。
泛型應(yīng)用在類和函數(shù)中,代碼示例如下:
package com.dt.scala.type_parameterization //泛型類 F,S,T 是類型,后面引用該類型 class Triple[F,S,T](first: F,second: S,third: T) object Hello_type_parameterization { def main(args: Array[String]): Unit = { //創(chuàng)建一個對象,傳入?yún)?shù)類型為 String、Int、Double val triple1 = new Triple("Spark",3,3.14) // 可見,定義時使用泛型,在調(diào)用時可以根據(jù)自己的需要傳入任何類型。 //也可以用如下方式創(chuàng)建對象 val triple2 = new Triple[String,String,String]("Spark","Scala","Kafka") //new 的時候,指定類型。那么傳入的參數(shù),必須是指定的類型 // 泛型函數(shù) // 定義一個函數(shù),可以獲取各類List的中間位置的值 def getData[T](l: List[T])={ l.take(l.length/2) } println(getData(List("a","b","c"))) println(getData(List(1,2,3,4,5,6))) } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章標(biāo)題:第42講:Scala中泛型類、泛型函數(shù)、泛型在Spark中的廣泛應(yīng)用-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article10/dedsdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)頁設(shè)計公司、用戶體驗、網(wǎng)站策劃、云服務(wù)器、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容