一、Scala隱式轉(zhuǎn)換使用場(chǎng)景
成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元河?xùn)|做網(wǎng)站,已為上家服務(wù),為河?xùn)|各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
1、用于從一種類型到另一種類型的轉(zhuǎn)換。
2、用于缺少參數(shù)方法的調(diào)用
二、Scala隱式轉(zhuǎn)換分類
1、隱式方法
implicit def intToString(x: Int) = x.toString
2、隱式類
implicit class RichFile(file: File) {
def read = Source.fromFile(file).mkString
}
new java.io.File(".").read
3、隱式對(duì)象
implicit object StringOrdering extends Ordering[String] {
override def compare(x: String, y: String): Int = x.length - y.length
}
4、隱式變量
implicit val test = 5
5、隱式參數(shù)
implicit val test = 5
findAnInt
def findAnInt(implicit x: Int) = x
三、隱式轉(zhuǎn)換規(guī)則
1、如果表達(dá)式不符合編譯器要求的類型,編譯器會(huì)查找能使之符合類型要求的隱式轉(zhuǎn)換
2、如果T類型中沒(méi)有成員e,但是我們還是想通過(guò)T.e來(lái)訪問(wèn)e,那么編譯器會(huì)查找能應(yīng)用到T類型并且返回類型包含成員e的隱式轉(zhuǎn)換
四、隱式查找的規(guī)則
1、隱式實(shí)體在查找發(fā)生的地點(diǎn)可見(jiàn)(可以通過(guò)import將隱式實(shí)體綁定到當(dāng)前作用域)
2、如果按照第一條規(guī)則沒(méi)有找到隱式實(shí)體的話,那么會(huì)在源類型和目標(biāo)的類型(T)的隱式作用域里包含的所有隱式實(shí)體中查找
2.1、類型T以及它的父類的伴生對(duì)象
2.2、參數(shù)化類型T的所有的類型參數(shù)的伴生類
2.3、類型T或者類型T的類型參數(shù)所在的對(duì)象(object)
2.4、包對(duì)象
本文題目:6、Scala隱式轉(zhuǎn)換
文章源于:http://m.2m8n56k.cn/article30/jdccso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、自適應(yīng)網(wǎng)站、外貿(mào)建站、ChatGPT、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)