欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

scala隱式轉(zhuǎn)換的用法

本篇內(nèi)容介紹了“scala隱式轉(zhuǎn)換的用法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專(zhuān)注于中大型企業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)和網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶(hù)上千余家,服務(wù)滿(mǎn)意度達(dá)97%。幫助廣大客戶(hù)順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專(zhuān)注品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶(hù)一起成長(zhǎng)!

一,簡(jiǎn)介

從類(lèi)型S到類(lèi)型T的隱式轉(zhuǎn)換由具有函數(shù)類(lèi)型S => T的隱式值定義,或者通過(guò)可轉(zhuǎn)換為該類(lèi)型的值的隱式方法來(lái)定義。隱含轉(zhuǎn)換適用于兩種情況:

1),如果表達(dá)式e是類(lèi)型S,并且S不符合表達(dá)式的期望類(lèi)型T.

2),在具有類(lèi)型S的e的e.m表達(dá)中,如果m不表示S的成員

在第一種情況下,搜索適用于e并且其結(jié)果類(lèi)型符合T的轉(zhuǎn)換c。在第二種情況下,搜索適用于e的轉(zhuǎn)換c,其結(jié)果包含名為m的成員。

列表[Int]的兩個(gè)列表xs和ys的以下操作是合法的:

xs <= ys

前提是下面定義的隱式方法list2ordered和int2ordered在范圍內(nèi):

implicit def list2ordered[A](x: List[A])(implicit elem2ordered: A => Ordered[A]): Ordered[List[A]] =new Ordered[List[A]] { /* .. */ }
implicit def int2ordered(x: Int): Ordered[Int] =new Ordered[Int] { /* .. */ }

隱式導(dǎo)入的對(duì)象scala.Predef聲明了一些預(yù)定義的類(lèi)型(例如Pair)和方法(例如,assert),還有一些隱式轉(zhuǎn)換。例如,當(dāng)調(diào)用期望java.lang.Integer的Java方法時(shí),可以自由地傳遞一個(gè)scala.Int。這是因?yàn)镻redef包含以下隱式轉(zhuǎn)換:

import scala.language.implicitConversions
implicit def int2Integer(x: Int) =java.lang.Integer.valueOf(x)

因?yàn)殡[式轉(zhuǎn)換可能有缺陷,如果不加區(qū)別地使用,編譯器在編譯隱式轉(zhuǎn)換定義時(shí)會(huì)發(fā)出警告。

若要關(guān)閉警告,請(qǐng)采取以下任何一種操作:

1),將scala.language.implicitConversions導(dǎo)入隱式轉(zhuǎn)換定義的范圍

2),調(diào)用編譯器時(shí),加上:-language:implicitConversions

當(dāng)編譯器應(yīng)用轉(zhuǎn)換時(shí),不會(huì)發(fā)出警告。

二,demo

1,第一種情況的demo

直接使用,會(huì)報(bào)錯(cuò)

val i: Int = 1.5

定義隱式轉(zhuǎn)化方法

implicit def double2Int(d: Double) = d.toInt

再次執(zhí)行就正常了

scala隱式轉(zhuǎn)換的用法

2,第二種情況的demo

class MYDF{  def  show(sw : String) = println(sw)}object RDD2DF{  implicit def rdd2df(s : MYRDD) = new MYDF}class MYRDDobject AminalType extends  App{  import yourpackage.RDD2DF._  val test = new MYRDD  test.show("RDD converts into DF")         }

編譯器在執(zhí)行test 對(duì)象的時(shí)候并沒(méi)有show方法,此時(shí)編譯器就會(huì)在作用域范圍內(nèi)查找能使其編譯通過(guò)的隱式視圖,找到RDD2DF的隱式轉(zhuǎn)換方法后,會(huì)先進(jìn)行隱式轉(zhuǎn)換,之后調(diào)用show方法。

3,隱式轉(zhuǎn)化參數(shù)

在定義一個(gè)方法時(shí)可以把最后一個(gè)參數(shù)列表定義為隱式參數(shù)。這個(gè)在spark內(nèi)部使用也是非常廣泛,比如前面發(fā)表的文章spark累加器原理,自定義累加器及陷阱就用到了。

如果方法有多個(gè)隱式參數(shù),只需一個(gè)implicit修飾即可。當(dāng)調(diào)用包含隱式參數(shù)的方法是,如果當(dāng)前上下文中有合適的隱式值,則編譯器會(huì)自動(dòng)為改組參數(shù)填充合適的值。如果沒(méi)有編譯器會(huì)拋出異常。當(dāng)然,標(biāo)記為隱式參數(shù)的我們也可以手動(dòng)為該參數(shù)添加默認(rèn)值。

def foo(n: Int)(implicit t1: String, t2: Double = 3.14)。

 少了第一步會(huì)報(bào)錯(cuò)。

scala隱式轉(zhuǎn)換的用法

此種情況在Spark中的使用,舉例:

def accumulator[T](initialValue: T, name: String)(implicit param: AccumulatorParam[T])  : Accumulator[T] = {  val acc = new Accumulator(initialValue, param, Some(name))  cleaner.foreach(_.registerAccumulatorForCleanup(acc))  acc}

三,總結(jié)

徹底搞懂scala隱式轉(zhuǎn)換,對(duì)我們了解spark及spark相關(guān)產(chǎn)品源碼,如MongoDB,redis等于spark結(jié)合實(shí)現(xiàn)源碼原理有著至關(guān)重要的作用。

“scala隱式轉(zhuǎn)換的用法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁(yè)題目:scala隱式轉(zhuǎn)換的用法
標(biāo)題網(wǎng)址:http://aaarwkj.com/article22/igdgcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、面包屑導(dǎo)航、品牌網(wǎng)站建設(shè)做網(wǎng)站、搜索引擎優(yōu)化、全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
香婷婷一区二区精品久久| 亚洲成av人一区二区三区| 亚洲第一青青草原在线| 国产精品午夜福利亚洲综合网 | 亚洲中文字幕高清乱码毛片| 日本中文字幕有码专区| 日本成人大片在线观看| 欧美黄片在线免费观看| 麻豆视频在线观看传媒| 国产精品成人亚洲一区二区| 一本综合九九国产二区| 国产精品成久久久久三级| 日本亚洲精品在线观看| 中文字幕加勒比东京热| 日本高清区一区二区三区四区五区| 日本在线人妻一区二区| 中文字幕伦理一区二区| 99热这里只有精品56| 97成人在线免费视频| 亚洲国产视频不卡一区| 精品中文字幕欧美区一区| 国产一区二区三区婷婷| 啊啊…嗯嗯…用力免费观看视频| 日韩成年人高清精品不卡一区二区| 丰满人妻被黑人猛烈进入免费 | 日韩不卡在线观看免费| 国产91久久精品一区二区| 一区二区三区三级视频| 亚洲天堂成人av蜜臀| 国产成人精品亚洲av无人区| 日本2区3区视频在线观看| 久久久久久精品人妻网| 日本精品不卡一二三区| 男女搞j视频网站免费观看 | 久国产精品韩国三级视频| 色呦呦一区二区三区视频| 欧美日韩国产精品一区二区三区| 久久免费欧美日韩亚洲| 中文字幕日韩人妻av| 亚洲精品亚洲一区亚洲二区| 伊人不卡中文字幕在线一区|